事件背景
近日,某客户通过内部安全扫描发现我们的 Elasticsearch 9200 端口支持较弱的 RSA 密钥交换算法,被标记为二级高危漏洞。尽管该端口主要用于内网通信且已启用证书认证,但客户要求严格遵守安全规范:”只要探测到支持弱 RSA 密钥交换协议就必须修复”。
无奈的挑战
面对这一要求,我们需要在不破坏现有功能的前提下解决问题。经过多次尝试,终于找到了简单有效的解决方案。
修复步骤
1. 定位配置文件
vi /etc/elasticsearch/elasticsearch.yml
2. 添加强化配置
# 严格限定密码套件白名单
xpack.security.http.ssl.cipher_suites:
# 优先选择 ECDHE 密钥交换(前向保密)
- "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256"
- "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256"
# 备选 DHE 密钥交换(同样具备前向保密)
- "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"
- "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"
# TLS 1.3 现代化套件
- "TLS_AES_128_GCM_SHA256"
- "TLS_AES_256_GCM_SHA384"
- "TLS_CHACHA20_POLY1305_SHA256"
3. 应用变更
systemctl restart elasticsearch
修复效果
命令确认支持的密钥交换算法命令:
nmap --script ssl-enum-ciphers -p 9200 localhost
修复前:

修复后确认:
