我正在尝试用我的ec2实例来设置cloudfront。域位于dreamhost,我添加了指向cloudfront url的CNAME记录。
我在我的EC2实例上使用了Lets加密。如果我使用我的弹性IP,并将其设置为“梦想主机”上的A记录,它将很好地转发,一切都正常。如果我将CNAME记录指向cloudfront url,则会得到502错误。
按照故障排除指南这里,我使用在线服务检查了我的SSL证书,这表明一切都很好。
我遗漏了什么?是否必须将cloudfront url添加到我的证书中?
此外,我将发行版的SSL证书指向AWS证书管理器中托管的证书,我认为该证书最终指向了我的原点。我将证书指向我的url,并添加了CNAME记录来验证所有权,所有这些似乎都很好。
更新:
我将我的ec2公共url插入到一个在线ssl检查程序中,并得到以下结果。也许这也是问题的一部分?如果输入弹性IP,我会得到同样的结果。看来这可能是罪魁祸首,但我不知道下一步是什么。回谷歌..。

更新2:
根据我正在阅读的内容,我需要确保在我的ec2实例上安装了中间证书。我还了解到,在Apache2.4中,fullchain.pem文件取代了旧的cert.pem文件,成为SSLCertificateFile。
我修改了/etc/httpd/conf/httpd 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 url,所以这并不是真正的可比。不幸的是,在我进行更改之前,我没有一个test.example.com的屏幕截图,但是我仍然得到了一个502错误,所以它显然没有修复它。
更新3:
看起来,当我导航到server: CloudFront时,响应头显示的是test.example.com,所以这是朝着正确方向迈出的一步。我以前一点也不明白。
更新4:
我下载了openssl并能够获得以下信息。奇怪的是,证书链甚至没有显示让我们将加密作为证书的来源。
最初,我使用一个使用EC2的letsencrypt来设置我的test.example.com实例。然后,当我创建cloudfront时,我使用证书管理器创建了一个指向我的test.example.com的证书,现在我想知道是否配置错了,因为openssl输出只显示了一个amazon。我对证书管理器和让我们加密证书之间的交互感到困惑,两者似乎都指向同一个url。呃。
我想我得设置一个弹性负载平衡器,并在ELB中使用ACM的证书。那么我想我不再需要让我们在EC2实例上加密证书了?



发布于 2019-07-12 14:26:20
如果使用@Kannaiyan指出的第二种方法,则不需要将域名移动到AWS。只需创建一个托管区域并将该区域中生成的NS记录复制到您的DNS提供程序。然后,您可以轻松地将您的域名(包括顶级域名)连接到Cloudfront发行版。
你可以检查我的答案这里
https://stackoverflow.com/questions/53145262
复制相似问题