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

Amazon Linux 1下Elastic Beanstalk Nginx TLS配置不生效

配置不生效的核心原因

你的配置共有3处关键错误,全部修正后即可正常生效:

  • 扩展配置目录拼写错误:Elastic Beanstalk只会识别项目根目录下名为.ebextensions的配置目录,你当前使用的.ebextentions存在拼写错误(字母s和t顺序颠倒),整个配置文件完全不会被EB平台读取执行。
  • Nginx配置上下文错误:你在自定义配置中写了一个无任何监听规则、无域名绑定的空server {}块,根本不会匹配到实际入站请求;ssl_protocols参数写在这个无效块内,完全无法覆盖平台默认生成的443端口server块的TLS协议配置。
  • 环境版本兼容问题:Amazon Linux 1默认预装的OpenSSL版本为1.0.2、Nginx版本普遍低于1.13,二者均不原生支持TLS 1.3,你配置中写的TLSv1.3参数会直接导致Nginx配置校验失败、服务无法正常重载。
可直接落地的修正方案
  1. 先将项目根目录下的配置文件夹重命名为正确的.ebextensions,逐字母检查拼写不要出错。
  2. 将01-setTLSConnection.config文件内容替换为如下配置(默认移除了AL1环境不兼容的TLSv1.3配置):
files:
  "/etc/nginx/conf.d/99-set-tls-protocols.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
      # 配置位于http上下文,会被所有server块继承,全局生效
      ssl_protocols TLSv1.2;
      ssl_prefer_server_ciphers on;

container_commands:
  01_validate_nginx_conf:
    command: "nginx -t"
  02_reload_nginx:
    command: "service nginx reload"
  1. 重新执行eb deploy部署应用即可。部署完成后可以通过openssl命令验证规则是否生效:
# 测试TLS 1.1连接,预期握手失败
openssl s_client -connect 你的应用域名:443 -tls1_1
# 测试TLS 1.2连接,预期可以正常完成握手
openssl s_client -connect 你的应用域名:443 -tls1_2

补充说明:如果你必须在Amazon Linux 1环境下支持TLS 1.3,需要额外在配置中添加步骤将OpenSSL升级到1.1.1以上、Nginx升级到1.13.0以上,否则配置会持续报错。更省事的方案是直接迁移到Amazon Linux 2版本的Elastic Beanstalk平台,默认预装的组件已经原生支持TLS 1.3,不需要手动升级依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:15:48