MongoDB OpsManager 4.0.8更换SSL证书后遇SSL连接拨号错误求助
MongoDB OpsManager 4.0.8 集群CA证书更新失败排查与正确流程
问题背景
运维基于MongoDB OpsManager 4.0.8的小型集群时,因内部CA更新,已完成服务器本地证书替换及OpsManager GUI的Authentication & TLS/SSL设置更新,但automation-agent.log仍出现Error dialing for SSL connection错误,证书为外部签名类型。
正确的证书更换流程
证书文件准备
- 确保新CA证书、服务器PEM证书(含私钥+完整证书链,外部签名需包含中间CA证书)为PEM格式,无格式错误
- 提前在单节点测试证书有效性,避免批量推送后出现问题
OpsManager端证书上传
- 进入OpsManager控制台的Authentication & TLS/SSL配置页
- 上传新的CA证书:选择覆盖原有CA或添加为信任CA(需确保OpsManager信任新CA)
- 上传新的服务器PEM证书:替换原有的节点证书配置
配置推送与实例重启
- 在OpsManager中触发Apply Changes,等待automation agent拉取新配置
- 监控所有节点的automation agent日志,确认配置拉取成功并重启mongod实例
- 待所有节点重启完成后,验证集群状态正常
全局验证
- 在每个节点测试SSL连接有效性
- 确认集群内节点间复制连接正常,无SSL相关报错
针对性排查方向
1. 证书文件权限与路径检查
- 检查证书文件
/etc/security/manager/keyall.pem和/var/lib/mongodb-mms-automation/xxxxzzzz_2023.pem的权限,确保mongodb-mms-automation用户拥有可读权限(建议设置为600) - 确认文件路径无误,automation agent进程能访问到这些路径(无selinux/apparmor等权限拦截)
2. 证书内容有效性验证
- 查看新CA证书信息:
确认有效期、颁发者为新CA,无格式错误openssl x509 -in /etc/security/manager/keyall.pem -text -noout - 验证服务器证书与CA的信任关系:
若出现openssl verify -CAfile /etc/security/manager/keyall.pem /var/lib/mongodb-mms-automation/xxxxzzzz_2023.pemerror提示,需检查证书链是否完整(外部签名需包含中间CA)
3. Automation Agent配置检查
- 查看agent配置文件(通常路径为
/etc/mongodb-mms/automation-agent.config),确认mmsSslCaFile参数指向新的CA证书路径 - 重启automation agent:
重新查看systemctl restart mongodb-mms-automation-agentautomation-agent.log,定位具体的SSL连接错误细节
4. MongoDB实例日志分析
- 查看节点的mongod日志
/data/data0_1/mongodb.log,搜索SSL相关关键字,确认实例启动时是否成功加载新证书,是否存在证书不匹配、链缺失等错误
5. SSL连接测试
- 在agent所在节点直接测试SSL连接:
根据输出判断是否能建立SSL连接,是否存在证书验证失败、握手错误等问题openssl s_client -connect 111.222.333.555:27017 -CAfile /etc/security/manager/keyall.pem
6. 配置一致性核对
- 对比OpsManager控制台的SSL配置与节点本地
/data/data0_1/automation-mongod.conf中的net.ssl参数,确认CAFile、PEMKeyFile路径完全一致 - 注意
weakCertificateValidation=true仅放宽部分验证规则,无法替代完整的证书信任链,外部签名证书必须确保链完整
内容的提问来源于stack exchange,提问作者ultimo_frogman
相关产品推荐
相关产品推荐

