如何自动化AWS EC2 SSL证书?

时间:2017-07-27 08:42:23

标签: amazon-web-services ssl amazon-ec2 aws-sdk

我正在根据需要使用AMI按需使用Java SDK旋转新的EC2实例http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/welcome.html

我正在端口8000上从AMI新传输的EC2实例上托管其他API。我想仅从IP访问实例,因为我将在需要时从基础AMI旋转许多实例,并在不需要时进行销毁。

我想从另一个以HTTPS 托管的网络应用程序中调用此API。我知道由于混合内容,它不允许我从HTTPS中命中HTTP。

经过一番研究,我发现AWS提供的ACM-Server证书服务可以应用于EC2。参考http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-iam-server-certificates.html

但它适用于与ACM集成的服务,根据文档在下面链接

  

http://docs.aws.amazon.com/acm/latest/userguide/acm-services.html>>   您无法直接在您的网站上安装ACM证书或   应用。您必须使用其中一个安装证书   与ACM集成的服务。有关这些的更多信息   服务,请参阅与AWS Certificate Manager集成的服务。

     
      
  • Elastic Load Balancing
  •   
  • Amazon CloudFront
  •   
  • AWS Elastic Beanstalk
  •   
  • Amazon API Gateway AWS
  •   
  • CloudFormation
  •   

但我没有使用上述任何服务。有没有办法实现这个并使用脚本在EC2 ip上安装SSSL?

1 个答案:

答案 0 :(得分:1)

这是一个常见问题,因为AWS ACS证书是免费的。

因此,为了避免将这些证书与AWS之外的其他服务一起使用,AWS从未向其客户披露相关的私钥。

要让EC2实例上的https服务器使用此类证书,AWS应该为您提供私钥,以便您配置https服务器本身。

这就是您不能在您的EC2实例中使用ACS证书的原因。您需要在其前面配置Elastic Load Balancing实例,以便AWS为此ELB提供您的证书和私钥(或者为HSM提供此私钥并将此HSM连接到ELB前端)。

请注意,在EC2实例前面使用ELB实例,以便能够使用来自AWS ACS服务的免费证书,可能是一个坏主意:证书通常更便宜(当然,取决于它们的类型和持续时间)而不是ELB的成本开销。

请注意,Let'sEncrypt(https://letsencrypt.org/)可以为您的EC2实例提供免费 DV(域验证)证书。您只需要安装Certbot ACME客户端,因为您可以访问EC2实例。