我正在尝试使用我的 ec2 实例设置云端。该域位于dreamhost,并且我添加了一条指向云端URL 的CNAME 记录。
我在我的 EC2 实例上使用 Lets Encrypt。如果我使用我的弹性 IP 并将其设置为 Dreamhost 上的 A 记录,它可以正常转发并且一切正常。如果我将 CNAME 记录指向云端 url,我会收到 502 错误。
按照此处的故障排除指南,我使用在线服务检查了我的 SSL 证书,它表明一切正常。
我错过了什么?必须将云端 URL 添加到我的证书中还是什么?
此外,我将分发版的 SSL 证书指向托管在 AWS Certificate Manager 中的证书,我认为该证书最终指向我的来源。我将证书指向我的 url 并添加了 CNAME 记录以验证所有权,所有这些似乎都工作正常。
更新:
我将我的 ec2 公共 url 插入在线 ssl 检查器,得到以下结果。也许这可能是问题的一部分?如果我输入我的弹性 IP,我会得到相同的结果。看起来这可能是罪魁祸首,但我不知道下一步是什么。回到谷歌搜索..
更新 2:
从我正在阅读的内容来看,我需要确保在我的 ec2 实例上安装了中间证书。我还了解到,在 Apache 2.4 中,fullchain.pem 文件代替了旧的 cert.pem 文件作为SSLCertificateFile
.
我修改了 /etc/httpd/conf/httpd-le-ssl.conf 的内容,如下所示:
<VirtualHost *:443>
DocumentRoot "/var/www/html"
ServerName "test.example.com"
ServerAlias "test.example.com"
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/test.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/test.example.com/privkey.pem
</VirtualHost>
更改并重新启动 httpd 服务后,我的 url 上仍然出现错误。当我将 test.example.com 插入 SSL 检查器时,它会显示:
请记住,我发布的第一个屏幕截图使用的是我的弹性 IP,而不是我的 test.example.com 网址,因此它们并没有真正的可比性。不幸的是,在我进行更改之前,我没有 test.example.com 的截图,但我仍然收到 502 错误,所以它显然没有修复它。
更新 3:
当我导航到 test.example.com 时,看起来我的响应标题正在显示server: CloudFront
,所以这是朝着正确方向迈出的一步。我以前完全没有得到。
更新 4:
我下载了 openssl 并能够获得以下信息。奇怪的是证书链甚至没有显示让加密作为证书的来源。
我最初使用 test.example.com 使用letsencrypt 证书设置我的EC2 实例。然后,当我创建 cloudfront dstribution 时,我使用证书管理器创建了一个指向我的 test.example.com 的证书,我现在想知道我是否以某种方式配置了错误,因为 openssl 输出只显示了一个亚马逊证书。我对证书管理器和 let encrypt cert 之间的交互感到困惑,它们似乎都指向同一个 url。啊。
我想我将不得不设置一个弹性负载均衡器并在 ELB 中使用来自 ACM 的证书。然后我想我不再需要让我们在 EC2 实例上加密证书了吗?