如何排查 CloudFront 分发版通过 HTTPS 与自定义源连接时遇到的问题?
上次更新时间:2018 年 10 月 30 日
我将 Amazon CloudFront 分发版配置为使用 HTTPS 连接到自定义源。为何我收到错误消息“CloudFront could not connect to Origin (CloudFront 无法连接到源)”和 HTTP 状态代码 502(无效网关)?
解决方法
验证 CloudFront 分发版的源域名是否与证书域名匹配
验证 CloudFront 分发版上指定的源域名是否与 SSL/TLS 证书上的域名匹配。该分发版的源域名可以与指定为证书的公用名的域名匹配,也可以与证书的主题替代名称中指定的域名之一匹配。
如果源域名与关联到您的证书的任何域名不匹配,那么 CloudFront 将返回 HTTP 状态码 502(无效网关)。
检查是否有任何缺失的中间证书颁发机构
使用 SSL 检查工具测试您的源的证书链是否可用并且不需要任何中间证书颁发机构。
如果您使用了 Elastic Load Balancing 负载均衡器作为自定义源并且需要更新证书链,则可以使用正确的证书链重新上传证书。
测试您的源的受支持协议策略和密码
对于为了让 SSL 握手成功,您的源必须支持 CloudFront 使用的密码。
如果您的源协议策略启用了 SSLv3,CloudFront 将仅使用 SSLv3 与您的源通进行信。要测试您的源是否支持 CloudFront 使用的密码,请使用 SSLv3 运行此 OpenSSL 命令:
echo | openssl s_client -ssl3 -cipher 'ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-SHA384 AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443
如果您的源使用了 TLS,请使用以下命令针对每个协议测试您的源:
对于 TLS 1.0,请运行:
echo | openssl s_client -tls1 -cipher 'ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-SHA384 AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443
对于 TLS 1.1,请运行:
echo | openssl s_client -tls1_1 -cipher 'ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-SHA384 AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443
对于 TLS 1.2,请运行:
echo | openssl s_client -tls1_2 -cipher 'ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-SHA384 AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443