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

Apache-Airflow 1.10.12 Web UI如何升级SSL协议修复SSLV3/TLSv1漏洞

Apache Airflow 1.10.12 Web UI SSL协议升级操作指引(修复SSLv3/TLSv1漏洞)

操作前选择业务低峰窗口执行,提前备份所有要修改的配置文件,避免配置错误导致服务不可用。根据实际部署架构,选择对应场景的操作步骤即可。


场景1:直接使用Airflow内置Webserver承载SSL连接

这种部署方式下Airflow Webserver直接对外暴露HTTPS端口,SSL逻辑由Airflow内置的Gunicorn服务处理。

  • 第一步:定位Airflow主配置文件,默认路径为/home/<部署用户>/airflow/airflow.cfg,如果是自定义部署路径找对应目录下的配置文件,先执行备份:
    cp airflow.cfg airflow.cfg.bak.$(date +%Y%m%d)
    
  • 第二步:编辑配置文件,找到[webserver]配置段,注释掉原有SSL协议、加密套件相关的旧配置,新增/修改为以下内容:
    # 仅启用合规的TLSv1.2、TLSv1.3协议,彻底禁用SSLv2/SSLv3/TLSv1.0/TLSv1.1
    webserver_ssl_protocol = TLSv1_2,TLSv1_3
    # 配置合规加密套件,排除所有弱加密算法
    webserver_ssl_ciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
    # 以下两项SSL证书路径保持原有配置即可,不需要修改
    webserver_ssl_cert = /path/to/your/fullchain.pem
    webserver_ssl_key = /path/to/your/privkey.pem
    
  • 第三步:重启Airflow Webserver服务加载配置,如果是systemd托管的服务执行:
    systemctl restart airflow-webserver
    
    如果是手动进程启动的,先kill掉旧的webserver进程,再通过airflow webserver命令拉起服务即可。

场景2:前置Nginx反向代理做SSL终止

EC2上大部分生产部署会采用这种架构:Airflow Webserver只监听本地127.0.0.1的8080端口,Nginx对外暴露443端口处理SSL逻辑,反向代理转发请求到Airflow。

  • 第一步:备份Nginx站点配置文件,默认路径为/etc/nginx/conf.d/airflow.conf(部分环境配置写在/etc/nginx/nginx.conf里),执行备份:
    cp /etc/nginx/conf.d/airflow.conf /etc/nginx/conf.d/airflow.conf.bak.$(date +%Y%m%d)
    
  • 第二步:编辑Nginx配置中对应Airflow的server段,修改SSL相关配置为以下内容:
    server {
        listen 443 ssl;
        server_name 你的Airflow访问域名;
        # 以下两项证书路径保持原有配置即可
        ssl_certificate /path/to/your/fullchain.pem;
        ssl_certificate_key /path/to/your/privkey.pem;
    
        # 禁用所有不安全协议
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    
        # 以下反向代理规则保持原有配置即可
        location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    
  • 第三步:校验Nginx配置正确性,执行:
    nginx -t
    
    控制台返回test is successful后,重启Nginx加载配置:
    systemctl restart nginx
    

特殊场景:前置AWS负载均衡器(ALB/CLB)做SSL终止

如果EC2实例不直接对外暴露端口,前面挂了AWS的负载均衡器处理HTTPS请求,不需要修改实例上的任何配置,直接在负载均衡器监听器配置里,选择禁用SSLv3/TLSv1.0/TLSv1.1的预定义安全策略即可。


配置有效性验证

服务重启完成后,在任意能访问Airflow Web UI的机器上执行openssl命令做协议连通性测试:

# 测试TLSv1是否被拦截
openssl s_client -connect <你的Airflow访问地址>:443 -tls1
# 测试SSLv3是否被拦截
openssl s_client -connect <你的Airflow访问地址>:443 -ssl3
# 测试TLSv1.1是否被拦截
openssl s_client -connect <你的Airflow访问地址>:443 -tls1_1
# 测试TLSv1.2是否能正常连接
openssl s_client -connect <你的Airflow访问地址>:443 -tls1_2

如果前三个测试返回ssl handshake failure即为拦截成功,TLSv1.2测试能正常输出证书链信息说明配置生效。验证完成后用漏洞扫描工具复测,确认SSLv3/TLSv1相关风险全部消除即可。


内容的提问来源于stack exchange,提问作者Amal Bose Mathew

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:31:21