【问题标题】:Can multiple CNAMEs cause ERR_TOO_MANY_REDIRECTS多个 CNAME 会导致 ERR_TOO_MANY_REDIRECTS
【发布时间】:2021-10-18 00:53:54
【问题描述】:

尝试为基于 AWS 存储桶的静态网站设置 CloudFront 分配失败,该网站使用 http,但不适用于 https。添加证书并配置 CloudFront 后,我​​收到 ERR_TOO_MANY_REDIRECTS

问题可能是在 Route 53 中配置的 mywebsite 的多个 CNAME 吗? 2 条记录来自证书管理器验证,不确定其他记录来自哪里。

谢谢!

mywebsite.com   A   Simple  -   
dwm6otdm3onq4.cloudfront.net.

mywebsite.com   MX  Simple  -   
10 inbound-smtp.us-east-1.amazonaws.com

mywebsite.com   NS  Simple  -   
ns-480.awsdns-60.com.
ns-1803.awsdns-33.co.uk.
ns-622.awsdns-13.net.
ns-1286.awsdns-32.org.

mywebsite.com   SOA Simple  -   
ns-480.awsdns-60.com. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

_ab7fff75e12e479a02ad7b663442718d.mywebsite.com CNAME   Simple  -   
_ffb36079eac41a4ec0d793858a8756ae.cvfdyspdbk.acm-validations.aws.

_amazonses.mywebsite.com    TXT Simple  -   
"16fq2E3zX5omvpZj0u/Wjf3U3Qky9a5eI/G8FQdp2VA="

c43idfnpaak4u3nh3znyjcezzfgjbza7._domainkey.mywebsite.com   CNAME   Simple  -   
c43idfnpaak4u3nh3znyjcezzfgjbza7.dkim.amazonses.com

n3b4lhcvp63woqnod6tlgpovm5dcpqkz._domainkey.mywebsite.com   CNAME   Simple  -   
n3b4lhcvp63woqnod6tlgpovm5dcpqkz.dkim.amazonses.com.

tgfvwhfjzfmn4cfpalcjlxrb7vfutszu._domainkey.mywebsite.com   CNAME   Simple  -   
tgfvwhfjzfmn4cfpalcjlxrb7vfutszu.dkim.amazonses.com

autodiscover.mywebsite.com  CNAME   Simple  -   
autodiscover.mail.us-east-1.awsapps.com

www.mywebsite.com   A   Simple  -   
dwm6otdm3onq4.cloudfront.net.

_b6ae735a7252c03dbfbe162ec5be00cc.www.mywebsite.com CNAME   Simple  -   
_16d9e15225e215d9fd9e9876ce29c409.cvfdyspdbk.acm-validations.aws.
{
    "ETag": "E2UARY2PF3JN6L",
    "Distribution": {
        "Id": "E2VAMJ3R5UEYSD",
        "ARN": "arn:aws:cloudfront::098706368979:distribution/E2VAMJ3R5UEYSD",
        "Status": "Deployed",
        "LastModifiedTime": "2021-08-18T19:41:28.165Z",
        "InProgressInvalidationBatches": 0,
        "DomainName": "dwm6otdm3onq4.cloudfront.net",
        "ActiveTrustedSigners": {
            "Enabled": false,
            "Quantity": 0
        },
        "DistributionConfig": {
            "CallerReference": "49a807de-37a4-4c9f-add6-739dcffd27cb",
            "Aliases": {
                "Quantity": 2,
                "Items": [
                    "www.mywebsite.com",
                    "mywebsite.com"
                ]
            },
            "DefaultRootObject": "index.html",
            "Origins": {
                "Quantity": 2,
                "Items": [
                    {
                        "Id": "www.mywebsite.com.s3.us-east-1.amazonaws.com",
                        "DomainName": "mywebsite.com.s3-website-us-east-1.amazonaws.com",
                        "OriginPath": "",
                        "CustomHeaders": {
                            "Quantity": 0
                        },
                        "CustomOriginConfig": {
                            "HTTPPort": 80,
                            "HTTPSPort": 443,
                            "OriginProtocolPolicy": "match-viewer",
                            "OriginSslProtocols": {
                                "Quantity": 3,
                                "Items": [
                                    "TLSv1",
                                    "TLSv1.1",
                                    "TLSv1.2"
                                ]
                            },
                            "OriginReadTimeout": 30,
                            "OriginKeepaliveTimeout": 5
                        }
                    },
                    {
                        "Id": "mywebsite.com.s3.us-east-1.amazonaws.com",
                        "DomainName": "mywebsite.com.s3-website-us-east-1.amazonaws.com",
                        "OriginPath": "",
                        "CustomHeaders": {
                            "Quantity": 0
                        },
                        "CustomOriginConfig": {
                            "HTTPPort": 80,
                            "HTTPSPort": 443,
                            "OriginProtocolPolicy": "http-only",
                            "OriginSslProtocols": {
                                "Quantity": 3,
                                "Items": [
                                    "TLSv1",
                                    "TLSv1.1",
                                    "TLSv1.2"
                                ]
                            },
                            "OriginReadTimeout": 30,
                            "OriginKeepaliveTimeout": 5
                        }
                    }
                ]
            },
            "OriginGroups": {
                "Quantity": 0
            },
            "DefaultCacheBehavior": {
                "TargetOriginId": "www.mywebsite.com.s3.us-east-1.amazonaws.com",
                "ForwardedValues": {
                    "QueryString": false,
                    "Cookies": {
                        "Forward": "none"
                    },
                    "Headers": {
                        "Quantity": 0
                    },
                    "QueryStringCacheKeys": {
                        "Quantity": 0
                    }
                },
                "TrustedSigners": {
                    "Enabled": false,
                    "Quantity": 0
                },
                "ViewerProtocolPolicy": "redirect-to-https",
                "MinTTL": 0,
                "AllowedMethods": {
                    "Quantity": 2,
                    "Items": [
                        "HEAD",
                        "GET"
                    ],
                    "CachedMethods": {
                        "Quantity": 2,
                        "Items": [
                            "HEAD",
                            "GET"
                        ]
                    }
                },
                "SmoothStreaming": false,
                "DefaultTTL": 0,
                "MaxTTL": 0,
                "Compress": true,
                "LambdaFunctionAssociations": {
                    "Quantity": 0
                },
                "FieldLevelEncryptionId": ""
            },
            "CacheBehaviors": {
                "Quantity": 0
            },
            "CustomErrorResponses": {
                "Quantity": 0
            },
            "Comment": "",
            "Logging": {
                "Enabled": false,
                "IncludeCookies": false,
                "Bucket": "",
                "Prefix": ""
            },
            "PriceClass": "PriceClass_100",
            "Enabled": true,
            "ViewerCertificate": {
                "ACMCertificateArn": "arn:aws:acm:us-east-1:098706368979:certificate/8213cadd-5efd-44ad-b252-3d2cb7bed408",
                "SSLSupportMethod": "sni-only",
                "MinimumProtocolVersion": "TLSv1.2_2021",
                "Certificate": "arn:aws:acm:us-east-1:098706368979:certificate/8213cadd-5efd-44ad-b252-3d2cb7bed408",
                "CertificateSource": "acm"
            },
            "Restrictions": {
                "GeoRestriction": {
                    "RestrictionType": "none",
                    "Quantity": 0
                }
            },
            "WebACLId": "",
            "HttpVersion": "http2",
            "IsIPV6Enabled": true
        },
        "AliasICPRecordals": [
            {
                "CNAME": "www.mywebsite.com",
                "ICPRecordalStatus": "APPROVED"
            },
            {
                "CNAME": "mywebsite.com",
                "ICPRecordalStatus": "APPROVED"
            }
        ]
    }
}

获取桶策略

    {
        "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"PublicReadGetObject\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::mywebsite.com/*\"},{\"Sid\":\"PublicReadGetObjectVersion\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObjectVersion\",\"Resource\":\"arn:aws:s3:::mywebsite.com/*\"},{\"Sid\":\"PublicListBucket\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:ListBucket\",\"Resource\":\"arn:aws:s3:::mywebsite.com\"}]}"
    }

获取桶网站:

    { 
        "IndexDocument": {
            "Suffix": "index.html"
        }
    }

【问题讨论】:

  • 我猜这是您的 CloudFront 配置问题,而不是您的路由 53 配置问题,因为一切看起来都很正常。您也可以分享您的 CloudFront 配置吗?
  • @stijndepestel,谢谢,当然可能是这样,尽管我似乎遵循了指示。我尝试将 mywebsite.com.s3.us-east-1.amazonaws.com 和 mywebsite.com.s3-website-us-east-1.amazonaws.com 作为域来源。行为表示将 HTTP 重定向到 HTTPS,并没有太大变化。由于我有 2 个 www.mywebstie.com(应该重定向到 mywebsite.com)或任何我可以查找的具体内容,有没有一种好方法可以获取关于设置的紧凑报告?
  • 你有没有为这些人准备的 cloudformation 模板?这将在 yaml 中显示整个配置,这将提供一个很好的概述。
  • @stijndepestel,我得到了 CLI 的 get-distribution 输出,但它太大了,无法作为评论发布。你可以给我发电子邮件flareplf@yahoo.com,以便我回复信息吗?谢谢!
  • 现在得到 504s :(.

标签: amazon-web-services amazon-route53


【解决方案1】:

添加 AAA 记录解决了该问题。

【讨论】:

    【解决方案2】:

    很难看出是什么导致了重定向,但很明显您的 CloudFront 配置并不理想。您已经配置了两次相同的源(虽然只使用一个),并且它们被配置为也使用 HTTPS 来访问 S3,这是不受支持的。它们还使用自定义 HTTP 源进行配置,而使用带有 Origin Access Identity (OAI) 的 S3 源配置更安全。

    您可以使用this blog 作为基础来使用 OAI 进行设置。这可能/希望也能解决您的重定向问题。

    【讨论】:

    • stijndepestel,谢谢,我现在得到 504(正如我在上面的评论中指出的那样),没有任何变化。感谢您的博客参考。我是定义。不是一个网络人,但我很困惑为什么配置一个简单的静态网站的 https 访问如此困难,驻留在 S3 存储桶中。该网站不会包含任何受限制的信息,所有公共内容,如果我只使用 http 和存储桶网站端点,它会静态工作。不管怎样,谢谢你的帮助。
    • 在您发表评论后,我删除了其中一个来源,因为我意识到两者都是通过 Route 52 A 记录解析到同一个 CloudFront 分配的,所以我只需要一个(我实际上是在关注一篇网络文章时我配置好了)。
    猜你喜欢
    • 2016-06-18
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2016-08-12
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    相关资源
    最近更新 更多