亚马逊 ELB HTTPS 不工作

Aar*_*ron 9 ssl amazon-web-services amazon-elb

我正在尝试让 HTTPS 与 AWS ELB 一起使用。

我已经尝试了大约一个小时,但无论我尝试什么,我都只是在通过 HTTPS 连接时连接超时。HTTP 工作正常,但不是 HTTPS。

任何人都可以提供一些帮助吗?

小智 11

不要忘记在安全组中允许端口 443。这就是导致它对我超时的原因。

如果您使用的是 Elastic Beanstalk (EBS),您应该直接在 EBS 配置中调整 SSL 设置,它会根据需要更新 ELB 和安全组。如果直接在EC2/ELB界面更新,即使可以让SSL生效,也不会反映在EBS界面。


小智 3

您需要先上传 SSL 证书。请确保您的证书链是否包含按正确顺序排列的中间证书和根证书。

我在这里找到了分析链证书问题的最佳方法:Wormly Test SSL Web Server

我已在此处开始为我的域进行 Amazon ELB SSL 配置:Elastic Load Balancing 的 SSL 证书

我正在使用 COMODO Instant SSL 证书。因此,我获得了 zip 文件中的证书包。当我解压时,它包含四个文件,如下所示:

             1.AddTrustExternalCARoot {Root certificate}
             2.COMODORSAAddTrustCA    {intermediate certificate 1}
             3.COMODORSADomainValidationSecureServerCA {intermediate certificate 2}
             4.www_example_com   {public key for my domain name}
Run Code Online (Sandbox Code Playgroud)

注意:在 Amazon ELB 中使用之前,我们需要将上述证书文件转换为.PEM 格式。这是通过使用以下命令完成的:

             openssl x509 -inform PEM -in {above certificate file name}
Run Code Online (Sandbox Code Playgroud)

现在我进入ELB的Listeners部分来配置HTTPS。ELB HTTPS 有三个括号,称为:

             1.Private Key {paste the private key which was generated using openSSL}
             2.Public Key Certificate {paste the public key of www_example_com certificate}
             3.Certificate Chain {paste the intermediate and Root certificate}
Run Code Online (Sandbox Code Playgroud)

在第一次尝试中,按照亚马逊的指导,证书链部分是可选的。我继续把它留空。它在 PC 浏览器中运行良好。尝试在 Android 移动浏览器中打开它时出现了问题。

我在这里找到了解决方案:在 Amazon Elastic Load Balancer 上设置 SSL为 SSL 证书安装创建 .pem 文件链接。

因此,为了避免这种情况,我按以下顺序包含了链接证书:

             COMODORSADomainValidationSecureServerCA 
             COMODORSAAddTrustCA    
             AddTrustExternalCARoot
Run Code Online (Sandbox Code Playgroud)

我已将上述三个证书(包括开始和结束标签)复制粘贴到链证书括号中。

现在已经完成了。太棒了,效果很好。现在,当我使用Wormly Test SSL Web Server检查时,我的 SSL 配置显示 100% 安全 。

谢谢。