CloudFront 分发和 AWS 颁发的证书给出 SSL_ERROR_NO_CYPHER_OVERLAP

CloudFront distribution and AWS issued certificate gives SSL_ERROR_NO_CYPHER_OVERLAP

我无法使用 AWS 证书使 Internet <-> CloudFront <-> S3 Bucket 正常工作。这就是我所做的:

  1. 创建了一个通配符证书,如:*.mydomain.com.
  2. 创建了一个 S3 存储桶,没有修改属性。
  3. 创建 CloudFront 分配,使用创建的 S3 存储桶 URL 作为来源,从第 1 步中选择我的证书,选择 HTTP/2、HTTP/1.1、HTTP/1 .0,并选择 HTTP 到 HTTPS 重定向。
  4. 在我的托管区域中为颁发证书的域创建了一个 A 别名,指向我的分配 URL。

创建发行版后,我的浏览器都这样告诉我:

我不确定我是否在设置过程中遗漏了一个步骤,我尝试摆弄各种参数但没有任何让我通过。

想知道我在这里错过了什么。

更新

阅读 this blog post,说我可能忘记添加备用 CNAME。这让我有点困惑,是吗?在 Route 53 中,我使用 something.mydomain.com 配置了我的完整域,证书是通配符。

其他博文和问题解答表明我不应该,只是使用 A 记录和 CloudFront 分配 URL/endpoint,就像我所做的那样。

因此,在我的更新中,我提到从博客 post 添加 CNAME。就是这样,第二次我这样做了,它开始工作了。

澄清一下,我这样做是为了解决我的问题:

  1. 编辑您的 CloudFront 分配。
  2. 在选项卡 常规 下,单击编辑。
  3. A​​lternate Domain Names文本框中,添加(至少)您配置的something.mydomain.com Route53.
  4. 中的分布 endpoint/URL
  5. 保存您的更改。

这对我来说立即解决了问题,但请记住,CloudFront 配置更改有时需要一些时间才能推出。

正如 OP 在顶级(裸)域、www 子域、其他子域或其他域的 CNAME 条目引起的编辑错误中所述) 未在分发中列出。

要解决此问题,请至少向 CloudFront 中的分配添加一个 CNAME。

奇怪但真实:

真正为我解决问题的是将 CF 发行版中的最低密码版本从 TLSv1 提高到 TLSv1.1_2016

这是相关的 CloudFormation 片段:

HttpVersion: "http2"
ViewerCertificate:
  AcmCertificateArn: !Ref SslCertificateArn
  MinimumProtocolVersion: "TLSv1.1_2016"
  SslSupportMethod: sni-only

很奇怪,因为我不明白为什么此更改可以解决任何问题。浏览器应自动协商更高的 TLS 版本。