如何在AWS云中添加SSL证书并使网站HTTPS?

时间:2018-08-26 08:30:19

标签: amazon-web-services amazon-ec2 dns

我仅在1个运行于1AZ(意味着1个公共子网)的EC2实例上安装了wordpress网站。我还使用Route 53购买了一个域。目前,我的站点仅是HTTP,我希望将其设置为HTTPS。我也从AWS Certificate Manager获得了SSL证书。目前,使用Route 53,我已将EC2实例公共IP V4地址映射到A记录IP V4映射。 我在将网站从当前HTTP更改为HTTPS时遇到问题。由于我的站点仅部署在1个AZ(公共子网)上,因此我无法在EC2实例之前添加Elastic Load Balancer,因为它至少需要2个公共子网(这是我的理解)。如果将我的一方部署在2个可用区(2个公共子网)上,那么我很容易用这2个子网配置了Application Load Balancer,并使用了存储在AWS证书管理器中的SSL证书,但在我的情况下,它仅为1个可用区/ 1个子网。

问题1)是否必须有2个公共子网来配置弹性负载均衡器?我不能像我的情况那样仅用1个子网配置负载均衡器吗?如果是,那么请告知该怎么做?

问题2)在Route 53和EC2实例之间是否真的需要负载均衡器才能使站点成为HTTPS?是否可以将Route 53和SSL证书配置为直接侦听EC2实例并使站点成为HTTPS?

请协助此处使我的网站成为HTTPS。谢谢

2 个答案:

答案 0 :(得分:0)

  • 1)是的,ELB需要两个子网-但是您不必在两个子网中都运行服务器(但显然您不会获得双服务器的收益/成本)。在AWS内转到VPC部分,并在正确的VPC内创建一个新的子网-然后,您应该能够创建ELB(它可能会抱怨第二个子网-但是,如果该子网中没有实例,那真的没关系)。 / p>

  • 2)否,但是,如果要使用免费的ACM证书,则必须将其安装在Load Balencer或CloudFront分发级别。没有什么可以阻止您在EC2上安装自己的证书,配置apache以使用它,然后根据需要更新它。看看LetsEncrypt提供免费证书,还是在线购买证书。

需要注意的几件事:

  • TLS / HTTPS的“最佳实践”在不断变化。 AWS通过提供策略来解决此问题,因此更新到最新标准非常简单,并且不需要更改您的ec2(因为它通过端口80与ELB通讯)
  • 如果您决定管理自己的证书,请查看SSL Labs证书测试器(https://www.ssllabs.com/ssltest/),以帮助您确保配置正确。

答案 1 :(得分:0)

让我直接回答问题。

  

问题1)是否需要有2个公共子网进行配置   弹性负载平衡器?我不能只配置1个负载均衡器吗   像我这样的子网?如果是,那么请告知该怎么做?

是的。您必须至少从两个可用区中指定子网以提高负载均衡器的可用性。这就是为什么您至少需要两个子网(每个可用区中至少一个子网)的原因。当您运行EC2实例时,还建议使用Auto Scaling在两个可用区(授予负载均衡器)中运行它们,以实现高可用性和容错能力。

  

问题2)在Route 53和EC2之间确实需要负载均衡器吗?   实例使站点HTTPS?我可以配置Route 53和SSL   证书以直接侦听EC2实例并建立站点   HTTPS?

如果您使用的是Amazon Certificate Manager(ACM)颁发的SSL证书,则这是必需的。否则,如果您使用外部购买的SSL证书,则可以在EC2实例Web服务器级别配置SSL证书。

注意:另一种方法是使用AWS CloudFront作为代理(也用于使用ACM证书终止SSL),并将请求代理到EC2实例(如果您不想为Cloud Balance的费用是在负载均衡器上付费)基于请求的数量,而不是按小时收取Load Balancer的费用。