You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无负载均衡器的AWS Beanstalk中自动生成HTTPS/SSL证书?

无需负载均衡器在Elastic Beanstalk(Amazon Linux 2 + Nginx)自动生成HTTPS证书

可以实现,但需要手动配置证书生成与自动续期的流程——默认无负载均衡的Beanstalk环境不会自动管理HTTPS证书,具体操作步骤如下:

  • 确认环境架构:确保你的Beanstalk环境为单实例(无负载均衡)类型,基于Amazon Linux 2 + Nginx。

  • 安装Certbot工具:
    在项目根目录创建.ebextensions/certbot.config配置文件,通过EB扩展自动安装Certbot及Nginx插件,文件内容如下:

    packages:
      yum:
        certbot: []
        python3-certbot-nginx: []
    

    将该文件随应用代码一起部署到Beanstalk,环境会自动完成依赖包安装。

  • 生成并配置HTTPS证书:
    可通过EB扩展的container_commands自动执行证书生成命令,或SSH登录实例后手动运行:

    sudo certbot --nginx -d your-domain.com --non-interactive --agree-tos -m your-email@example.com
    

    该命令会自动完成Let's Encrypt证书申请,并修改Nginx配置启用HTTPS。

  • 配置证书自动续期:
    Let's Encrypt证书有效期为90天,需设置自动续期任务。可通过cron实现:

    1. 编辑cron任务列表:
      sudo crontab -e
      
    2. 添加续期命令:
      0 12 * * * /usr/bin/certbot renew --quiet
      

    也可以通过.ebextensions配置自动添加cron任务,在配置文件中加入:

    files:
      /etc/cron.d/certbot_renew:
        mode: "000644"
        owner: root
        group: root
        content: |
          0 12 * * * root /usr/bin/certbot renew --quiet
    
  • 关键注意事项:

    • 域名需解析到Beanstalk实例的公网IP,建议绑定弹性IP,避免实例重启后IP变更导致证书验证失败。
    • 实例安全组需开放80(HTTP)和443(HTTPS)端口,Certbot的HTTP-01验证依赖80端口访问。

内容的提问来源于stack exchange,提问作者epol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 06:03:10