如何将SSL证书附加到单实例beanstalk应用程序

时间:2013-09-03 08:27:18

标签: ssl amazon-web-services elastic-beanstalk

我有一场Java战争,我希望在AWS上使用弹性beanstalk。 我有证书,但我无法弄清楚如何将它附加到我的单实例应用程序。

所有的方法都描述了如何将证书附加到弹性负载均衡器,但没有关于如何在没有负载均衡器的情况下(即单个实例)执行此操作的文档。

我不想使用负载均衡器,因为它需要额外费用(在测试环境中不需要)。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:14)

Elastic Beanstalk单实例类型不支持通过Management Console或API提供SSL。您可以在AWS Forums中找到更多信息。

但您可以使用配置文件自定义实例以启用SSL。请参阅以下示例。

  1. 在源包的顶层创建一个.ebextensions目录。
  2. SSLCertificateFile.crtSSLCertificateKeyFile.keySSLCertificateChainFile.crtssl.conf(apache2 ssl模块配置)复制到.ebextensions
  3. 创建配置文件/your_app/.ebextensions/01ssl.config。键入以下内容 配置文件中的01ssl.config用于配置ssl设置
  4. 在您的安全组中打开443端口
  5. 01ssl.config

    packages:
      yum:
        mod_ssl: []
    container_commands:
      add-SSLCertificateFile-label:
        command: cp .ebextensions/SSLCertificateFile.crt /home/ec2-user/SSLCertificateFile.crt
    
      add-SSLCertificateKeyFile-label:
        command: cp .ebextensions/SSLCertificateKeyFile.key /home/ec2-user/SSLCertificateKeyFile.key
    
      add-SSLCertificateChainFile-label:
        command: cp .ebextensions/SSLCertificateChainFile.crt /home/ec2-user/SSLCertificateChainFile.crt
    
      replace-ssl-configuration-label:
        command: cp .ebextensions/ssl.conf /etc/httpd/conf.d/ssl.conf
    

    ssl.conf示例

    您的WAR结构应该是

    web_app.war
              |
              |_.ebextensions
              |   |_ 01ssl.config
              |   |_ SSLCertificateFile.crt
              |   |_ SSLCertificateKeyFile.key
              |   |_ SSLCertificateChainFile.crt
              |   |_ ssl.conf
              |
              |_META-INF
              |
              |_WEB-INF
                   |_ classes
                   |_ lib
                   |_ web.xml
    

    2013/11/14更新。

    1. 使用配置文件时应注意安全问题,因为每个人都可以访问.ebextensions文件夹中的文件。在通常情况下可能不会发生这种情况。
    2. AWS现在还为configuring SSL for Single Instance Type提供了示例配置文件。

答案 1 :(得分:3)

此解决方案使用LetsEncrypt免费证书,并且不需要将证书存储在配置文件中。并且它易于重用于不同的域。

http://bluefletch.com/blog/domain-agnostic-letsencrypt-ssl-config-for-elastic-beanstalk-single-instances/

摘要:包含容器命令的配置文件,可自动下载certbot,获取证书,并将nginx指向证书。