【问题标题】:TLS 1.2 with CloudFront default domain具有 CloudFront 默认域的 TLS 1.2
【发布时间】:2021-03-17 09:42:35
【问题描述】:

我创建了一个 CloudFront 分配,用于前置来自 S3 源的一些可公开访问的内容。这一切都很好,但我需要将支持的最低 TLS 版本设置为 1.2。

似乎执行此操作的唯一方法是导入自定义 SSL 证书并设置 ViewerCertificate 属性,特别是 MinimumProtocolVersion。我可以让证书管理器颁发公共证书,但我不想注册域。就本内容而言,我对默认的 cloudfront.net 域感到满意。

似乎应该默认支持指定最低 TLS 版本。我在这里遗漏了什么吗?

谢谢, 约翰

【问题讨论】:

  • 公共证书需要注册域。
  • 谢谢@jellycsc。我想知道是否有一种方法可以为默认 CloudFront SSL 证书指定最低 TLS 版本,这样我就不需要注册域了。
  • AFAIK 这是不可能的。默认xxx.cloudfront.net 域上的最低 TLS 版本不可配置。

标签: amazon-s3 ssl-certificate amazon-cloudfront


【解决方案1】:

这可能不会永远受支持,但事实证明您可以为默认域导入伪造的自签名证书。 CloudFront 将忽略它,但强制执行您的 TLS 策略。

例如,我目前正在d2uwa7ugi8xf89.cloudfront.net 上进行测试——配置了安全策略 TLSv1.2_2019。 openssl s_client 将显示它正在出售默认证书:

% openssl s_client -servername d2uwa7ugi8xf89.cloudfront.net -tls1_2 -connect d2uwa7ugi8xf89.cloudfront.net:443
CONNECTED(00000003)
depth=3 C = US, O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = "(c) 2006 VeriSign, Inc. - For authorized use only", CN = VeriSign Class 3 Public Primary Certification Authority - G5
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2
depth=1 C = US, O = DigiCert Inc, CN = DigiCert Global CA G2
depth=0 C = US, ST = Washington, L = Seattle, O = "Amazon.com, Inc.", CN = *.cloudfront.net
---
Certificate chain
 0 s:/C=US/ST=Washington/L=Seattle/O=Amazon.com, Inc./CN=*.cloudfront.net
   i:/C=US/O=DigiCert Inc/CN=DigiCert Global CA G2
 1 s:/C=US/O=DigiCert Inc/CN=DigiCert Global CA G2
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root G2
 2 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root G2
   i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
---
...

尝试连接 TLS 1.0 或 TLS 1.1?不行:

% openssl s_client -servername d2uwa7ugi8xf89.cloudfront.net -tls1_1 -connect d2uwa7ugi8xf89.cloudfront.net:443
CONNECTED(00000003)
139725480863648:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:s3_pkt.c:1493:SSL alert number 70
139725480863648:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:s3_pkt.c:659:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
...

此证书是以通常的伪造自签名证书方式生成的:

openssl genrsa 2048 > cf.privkey
openssl req -new -subj /CN=d2uwa7ugi8xf89.cloudfront.net -key cf.privkey -out cf.csr
openssl x509 -in cf.csr -req -signkey cf.privkey -out cf.pem -days 99999

【讨论】:

    猜你喜欢
    • 2017-10-07
    • 2016-04-27
    • 2017-12-03
    • 2018-09-18
    • 2020-07-07
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 2020-02-24
    相关资源
    最近更新 更多