如何在Apache Airflow部署中强制使用客户端SSL证书?
如何让Apache Airflow强制验证客户端证书
你当前的配置仅开启了服务器端SSL加密,并没有启用客户端证书强制验证,所以服务器不会要求客户端提供证书,也就出现了No client certificate CA names sent的提示。要实现强制客户端证书验证,需要在Airflow配置中添加以下两项关键设置:
1. 配置信任的客户端CA证书
指定用于验证客户端证书的CA证书路径(这个CA是签发用户客户端证书的根证书或中间证书):
web_server_ssl_ca: <CA证书文件路径>
2. 启用强制客户端证书验证
将客户端认证设置为必填项,这样服务器会拒绝未提供合法客户端证书的连接:
web_server_ssl_client_auth: required
完整的SSL配置示例
更新后的airflow.cfg中相关配置段如下:
web_server_ssl_cert: <path to crt file> web_server_ssl_key: <path to key file> web_server_port: 8443 base_url: https://<IP address>:8443 # 新增客户端证书验证相关配置 web_server_ssl_ca: <path to CA crt file> web_server_ssl_client_auth: required
3. 重启Airflow服务
修改配置后,需要重启Airflow webserver服务让配置生效:
airflow webserver restart
验证配置效果
- 尝试不带客户端证书连接:执行
openssl s_client -crlf -connect <IP address>:8443,此时连接会被服务器拒绝,说明强制验证生效。 - 使用合法客户端证书连接:执行以下命令,应该能正常建立连接并通过验证:
openssl s_client -crlf -connect <IP address>:8443 -cert <客户端证书路径> -key <客户端密钥路径>
内容的提问来源于stack exchange,提问作者Subha_26
相关产品推荐
相关产品推荐

