Laravel 上的亚马逊 S3 ERR_INSECURE_RESPONSE

Amazon S3 ERR_INSECURE_RESPONSE on Laravel

我在我的子域 sub.example.com 上使用 Laravel 框架,试图为我网站的所有图片实现与 Amazon S3 的连接。

这是我的存储桶政策 (bucket-1)

{
    "Id": "Policy************",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt***********",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::bucket-1/*",
            "Principal": "*"
        }
    ]
}

这是我的 CORS

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <ExposeHeader>ETag</ExposeHeader>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

我为我的用户授予了所有权限,并且只为 Everyone 授予了 list

为什么我上传图片后,我的网站上没有显示该图片 (net::ERR_INSECURE_RESPONSE)?

如果我导航到图片的 url (https://s3.eu-west-1.amazonaws.com/bucket-1/...) Chrome 会显示一个警告页面,其中包含消息 Your connection is not private

s3.eu-west-1.amazonaws.com. NET::ERR_CERT_COMMON_NAME_INVALID
Subject: *.s3-eu-west-1.amazonaws.com
Issuer: DigiCert SHA2 High Assurance Server CA

更让我莫名其妙的是,如果我复制粘贴相同的link到另一个标签,我可以毫无问题地看到图片。

您正在使用 s3.eu-west-1.amazonaws.com,但您应该使用 s3-eu-west-1.amazonaws.com...您需要在 "s3."

之后使用破折号而不是圆点

http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

S3 中的不同区域根据年龄的不同在惯例上有所不同。你所做的在 eu-central-1 中是有效的,这两种方式都有效,但在 eu-west-1.

中无效