通过 ACM 将 SSL 证书问题添加到 ubuntu 机器上的 Apache 虚拟主机

Adding SSL certificate issues by ACM to Apache virtual host on ubuntu machine

我正在试用 ACM 的 SSL 证书。

我已经为一个域 'prod.yp-uae.waveaxis.space' 申请了一个 public 证书 负载均衡器。我还将 Https 侦听器添加到负载平衡器。

ACM 仪表板显示正在使用的证书。

但是在浏览器中使用域名时显示不正常不安全linkhttp://prod.yp-uae.waveaxis.space/

我猜是因为我在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>

我知道配置 443 端口如下(只是一个例子)

SSLEngine on
  SSLProtocol all -SSLv2
  SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  SSLCertificateFile "/var/www/www.foo.com/ssl/server.crt"
  SSLCertificateKeyFile "/var/www/www.foo.com/ssl/server.key"

我想知道的是如何在我的 Ec2 机器上为变量获取我的 ACM SSL 证书 'SSLCertificateFile' 'SSLCertificateKeyFile'?

我是不是也遗漏了其他部分?

这是我的 ALB 的安全组:

通常,如果您已在 ALB 上部署了 SSL 证书,则 您的 EC2 实例上不需要 SSL 证书。原因是 ALB 将 终止 您的 SSL/HTTPS 连接,然后它会将其作为常规 HTTP (non-SSL) 连接转发到您的实例。在这种情况下,流量为:

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

此设计简化了大量手动设置 SSL 证书和off-loads将其处理到 ALB 的工作。

因此,如果在 ALB 和实例之间使用 HTTPS 并不是真正的要求,那么让 Apache 在端口 80.[=14= 上提供常规 HTTP 流量就更容易了]

The thing I am wondering on is how can I get my ACM SSL certificate

很遗憾,您无法访问 ACM 证书,因为它们 can only be used 在负载均衡器、CloudFront 分发和 API 网关上。这意味着您不能在实例.

上使用它

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

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

但是,通常不会这样做,在大多数情况下,ALB 和实例之间使用 HTTP 的第一种情况就足够了。

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

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

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