Amazon web services 通过ACM向ubuntu机器上的Apache虚拟主机添加SSL证书问题

Amazon web services 通过ACM向ubuntu机器上的Apache虚拟主机添加SSL证书问题,amazon-web-services,amazon-ec2,https,ssl-certificate,apache2,Amazon Web Services,Amazon Ec2,Https,Ssl Certificate,Apache2,我正在尝试使用ACM获取SSL证书 我已为附加到的域“prod.yp-uae.waveaxis.space”请求了公共证书 负载平衡器。我还向负载平衡器添加了Https侦听器 ACM仪表板显示要使用的证书 但当我在浏览器中使用域名时,它显示的不是正常的非安全链接 我想这是因为我在apache2上设置了虚拟主机。 以下是我的虚拟主机的代码: <VirtualHost *:80> ServerName prod.yp-uae.waveaxis.space

我正在尝试使用ACM获取SSL证书

我已为附加到的域“prod.yp-uae.waveaxis.space”请求了公共证书 负载平衡器。我还向负载平衡器添加了Https侦听器

ACM仪表板显示要使用的证书

但当我在浏览器中使用域名时,它显示的不是正常的非安全链接

我想这是因为我在apache2上设置了虚拟主机。 以下是我的虚拟主机的代码:

<VirtualHost *:80>


        ServerName prod.yp-uae.waveaxis.space
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        ProxyPreserveHost On
            
        ProxyPass / http://127.0.0.1:8380/
        ProxyPassReverse / http://127.0.0.1:8380/
        
</VirtualHost>
    
#<VirtualHost *:443>
#</VirtualHost>
我想知道的是,如何在Ec2机器上获取变量的ACMSSL证书 “SSLCertificateFile”“SSLCertificateKeyFile”

我是否也遗漏了其他部分

这是我的ALB的安全组:


通常,如果您在ALB上部署了SSL证书,则在EC2实例上不需要SSL证书。原因是ALB将终止您的SSL/HTTPS连接,然后将其作为常规HTTP(非SSL)连接转发给您的实例。在此场景中,交通流为:

client---(HTTPS)-->ALB----(HTTP)--->EC2 instances
此设计简化了手动设置SSL证书的大量工作,并将其处理卸载到ALB

因此,如果在ALB和实例之间不需要HTTPS,那么让Apache在端口80上提供常规的HTTP流量就更容易了

我想知道的是如何获得我的ACMSSL证书

遗憾的是,您无法访问ACM证书,因为它们位于负载平衡器、CloudFront分发和API网关上。这意味着您不能在实例上使用它

但是,如果您确实需要端到端HTTPS,那么您应该在实例上生成并部署自己的自签名SSL证书。这需要一些设置,但您的连接将:

client---(HTTPS)-->ALB----(HTTPS)--->EC2 instances

但是,这通常不会完成,并且在大多数情况下,ALB和实例之间使用HTTP的第一个场景就足够了。

根据我们的讨论,要添加到@Marcin answer,您需要确保在JavaScript中提供的资产和引用域使用HTTPS协议,而不是HTTP协议(目前正在使用)

如果用户通过HTTPS访问站点,任何使用HTTP的请求都可能被阻止,因为“混合内容”会阻止站点加载这些资源。当站点也通过纯文本(HTTP)加载时,这将起作用


如果这些也通过HTTPS加载,那么Marcins解决方案将适用于您。此外,您引用的是一个IP地址,而不是可以为HTTPS请求提供服务的域,这应该进行调整,因为我假设这是EC2主机的IP,而不是负载平衡器的IP。

感谢您的回答,它清除了很多问题。但当我访问我的域时,它仍然显示出不像基本HTTP那样的不安全性。如何发送https请求以测试其是否真的有效?@sumanthshetty您可以使用侦听器和目标组设置更新问题。也打开了ALB安全组上的443端口吗?完成。如果还有其他问题,请告诉我required@sumanthshetty您的443侦听器应该转发到
yp tg elb
,而不是它的https变体。你能试试吗?@sumanthshetty很高兴听到这个消息。我不知道为什么会不一样。我认为这与ALB无关。也许是CORS的问题?我在浏览器控制台中看到:
阻止加载混合活动内容
,因为您似乎使用http加载了一些文件,而其他文件则加载了https。不管怎么说,很高兴它成功了。现在你必须修改你的网站以统一使用https。这不是我能为你做的。谢谢你的回答。我们将继续执行您的建议,在我们的应用服务器前面添加负载平衡器。在执行此操作时,我必须向其添加SSL证书。在创建ACM证书时,我只提供了前端负载平衡器的域名。现在,如果我将同一个ACM证书附加到具有不同域名的后端ELB上,它会工作吗?创建ACM证书时没有提供此名称
client---(HTTPS)-->ALB----(HTTPS)--->EC2 instances