使用SSL/TLS证书后无法连接本地MongoDB的问题求助
使用SSL/TLS证书连接本地MongoDB时遭遇HostUnreachable错误
问题详情
每次尝试通过SSL/TLS证书连接本地MongoDB服务器,都会收到错误:「connection attempt failed: HostUnreachable」。
已尝试的解决方法:
- 重启系统
- 将tls切换为SSL
- 反复核对mongodb.pem文件路径
执行代码及报错信息
MongoDB shell version v5.0.9 connecting to: mongodb://localhost:27017/?compressors=disabled&gssapiServiceName=mongodb Error: couldn't connect to server localhost:27017, connection attempt failed: HostUnreachable: Connection reset by peer : connect@src/mongo/shell/mongo.js:372:17 @(connect):2:6 exception: connect failed exiting with code 1
当前mongo.cfg配置文件
# for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # Where and how to store data. storage: dbPath: C:\Program Files\MongoDB\Server\5.0\data journal: enabled: true # engine: # wiredTiger: # where to write logging data. systemLog: destination: file logAppend: true path: C:\Program Files\MongoDB\Server\5.0\log\mongod.log # network interfaces net: port: 27017 bindIp: 127.0.0.1 #processManagement: security: authorization: enabled #operationProfiling: #replication: #sharding: ## Enterprise-Only Options: #auditLog: #snmp:
连接命令
mongo --tls --tlsCAFile mongodb.pem --host localhost
问题原因及解决步骤
核心问题是你的MongoDB服务器(mongod)未启用TLS/SSL配置,但客户端连接时强制使用了--tls参数,导致连接被服务器重置。
解决步骤:
修改
mongo.cfg配置文件,在net节点下添加TLS相关配置:net: port: 27017 bindIp: 127.0.0.1 tls: mode: requireTLS # 强制所有连接使用TLS certificateKeyFile: "C:\实际路径\mongodb.pem" # 替换为你的pem文件绝对路径 CAFile: "C:\实际路径\mongodb.pem" # 如果CA证书和密钥在同一文件,填相同路径注意:
certificateKeyFile需要包含服务器证书和对应的私钥,确保文件路径正确,且MongoDB服务有权限读取该文件。重启MongoDB服务,让新配置生效。
重新使用原连接命令尝试连接,若pem文件不在当前工作目录,建议使用绝对路径:
mongo --tls --tlsCAFile "C:\实际路径\mongodb.pem" --host localhost
内容的提问来源于stack exchange,提问作者Maj_st
相关产品推荐
相关产品推荐

