CloudFront分发和AWS颁发的证书提供SSL_ERROR_NO_CYPHER_OVERLAP

时间:2017-03-16 21:20:57

标签: amazon-web-services ssl amazon-cloudfront amazon-route53

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

  1. 创建了一个证书,一个通配符,如:* .mydomain.com。
  2. 创建了一个S3存储桶,没有属性的提示。
  3. 创建CloudFront分配,使用创建的S3存储桶URL作为源,从步骤1中选择我的证书,选择HTTP / 2,HTTP / 1.1,HTTP / 1.0,然后选择HTTP到HTTPS重定向。
  4. 在我的托管区域中为发布证书的域创建了一个A别名,指向我的分发网址。
  5. 创建分发后,我的浏览器都告诉我:

    • Firefox:SSL_ERROR_NO_CYPHER_OVERLAP
    • Chrome:ERR_SSL_VERSION_OR_CIPHER_MISMATCH
    • Safari:无法建立安全连接。

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

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

    更新

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

    其他博客文章和问题答案表明我不应该像我一样使用A记录和CloudFront分配网址/端点。

3 个答案:

答案 0 :(得分:26)

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

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

  1. 修改您的CloudFront分配。
  2. 常规标签下,点击修改。
  3. 备用域名文本框中,添加(至少)您已配置的 something.mydomain.com 到此分发的端点/网址在Route53。
  4. 保存更改。
  5. 这为我立即解决了,但请记住CloudFront配置更改有时可能需要一段时间才能推出。

答案 1 :(得分:0)

如OP中所述,在顶点(裸)域,www子域,其他子域或其他域的 CNAME 条目未列出时导致的编辑错误中分布。

enter image description here

要修复,请向CloudFront中的发行版添加至少一个CNAME。

答案 2 :(得分:0)

奇怪但真实:

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

这是相关的 CloudFormation 片段:

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

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