MongoDB Ops Manager未启用IPv4监听器且HTTPS访问异常
MongoDB Ops Manager TLS配置问题排查与解决
问题梳理
- 配置内部CA签名的PEM证书启用TLS后,HTTPS监听器仅绑定IPv6地址(:::8443),无法通过IPv4访问
- 添加配置项
mms.http.bindhostname=10.1.2.84后,HTTP服务(http://10.1.2.84:8080)正常,但HTTPS服务无法连接 - curl测试返回
OpenSSL SSL_read错误:ssl3 alert bad certificate,SSL握手验证通过但仍报证书错误,客户端证书模式设为all requests
解决步骤
1. 修复HTTPS监听器IPv4绑定问题
Ops Manager的HTTP和HTTPS绑定配置是独立的,仅设置mms.http.bindhostname只会生效在HTTP端口。需要单独配置HTTPS的绑定地址:
- 找到Ops Manager的配置文件(一般是
conf-mms.properties),添加以下配置:mms.https.bindhostname=10.1.2.84 mms.https.port=8443 - 确认
mms.ssl.PEMKeyFile指向的PEM文件包含完整的证书链:服务器证书在前,私钥在后,最后加上内部CA的证书,确保文件格式正确。
2. 解决"ssl3 alert bad certificate"错误
这个错误在all requests客户端证书模式下,大概率是客户端未提供有效证书,或者服务器未正确信任客户端证书的CA:
- 确保你使用的客户端证书是由内部CA签名的有效证书,并且包含完整的证书链
- 用curl测试时,必须指定客户端证书和私钥:
curl --cert 你的客户端证书.pem --key 你的客户端私钥.pem --cacert CA.pem https://instance-one.eng.corp.com:8443 - 检查Ops Manager配置中是否正确配置了客户端CA信任:
mms.ssl.CAFile=CA.pem mms.ssl.clientCertificateMode=all requests - 检查证书文件权限:运行Ops Manager的用户需要能读取证书文件,建议设置权限为
chmod 600 证书文件.pem
3. 验证配置生效
- 重启Ops Manager服务后,用
ss或netstat命令确认8443端口绑定在IPv4地址上:ss -tulpn | grep 8443 - 查看Ops Manager日志(通常在
logs/mms.log),确认HTTPS监听器启动成功,没有证书加载失败的报错
内容的提问来源于stack exchange,提问作者AJain2810
相关产品推荐
相关产品推荐

