You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用TLS与身份认证后无法连接MongoDB的技术求助

问题:启用TLS与身份认证后无法连接MongoDB

MongoDB部署环境

我在Docker容器中运行MongoDB,已启用TLS/SSL、基于角色的访问控制(RBAC)及内部身份认证,部署概况如下:

  • MongoDB版本:6.x(Docker运行)
  • mongod.conf配置:
net:
  port: 27017
  bindIp: 0.0.0.0
  tls:
    mode: requireTLS
    certificateKeyFile: /etc/ssl/mongo.pem   # 合并的证书与私钥文件
    CAFile: /etc/ssl/ca.pem                  # 证书颁发机构文件
    allowConnectionsWithoutCertificates: false

security:
  authorization: "enabled"                   # 启用基于角色的访问控制(RBAC)
  keyFile: /etc/rs_keyfile                   # 副本集身份认证密钥文件路径

systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true
  verbosity: 2
  • 证书说明:
    • mongo.pem:包含服务器证书与私钥
    • ca.pem:包含签署mongo.pem的CA证书
  • Docker Compose:MongoDB运行于Docker容器中,已用openssl生成所需PEM文件

MongoDB启动方式

通过Docker加载上述配置启动MongoDB,启动过程看似正常,但使用mongosh通过TLS连接时遇到问题。

连接错误信息

使用以下命令尝试连接:

mongosh --tls --tlsCAFile /etc/ssl/ca.pem --tlsCertificateKeyFile /etc/ssl/mongo.pem --host 127.0.0.1 --port 27017

收到错误:
MongoServerSelectionError: connection to 127.0.0.1:27017 closed
即使添加tlsAllowInvalidHostnames参数,仍无法成功建立连接。

补充信息

已通过openssl verify和openssl s_client验证证书,证书有效。

日志中的错误

MongoDB日志中发现以下错误:

User assertion "NotYetInitialized: no replset config has been received"
Unable to retrieve storageStats in $collStats stage :: caused by :: Collection [local.oplog.rs] not found.

疑问

  1. 证书配置:我生成或配置MongoDB证书的方式是否存在问题?
  2. 主机名问题:使用TLS进行本地连接时,如何正确解决“主机名不匹配”问题?
  3. 副本集配置:我未启用复制功能,但仍出现副本集相关错误,这是否与连接问题有关?

证书详情

以下是openssl x509 -in /etc/ssl/mongo.pem -noout -text的输出:

Certificate: 
Data: 
Version: 3 (0x2) 
Serial Number: 23:e7:a5:54:fa:d1:5f:12:7c:a7:5a:16:7c:63:50:23:16:39:a2:c9 
Signature Algorithm: sha256WithRSAEncryption 
Issuer: C = US, ST = UH, L = GO, O = NFA, OU = NFA, CN = NFA, emailAddress = example@email.com 
Validity Not Before: Sep 14 15:11:18 2024 GMT 
Not After : Sep 14 15:11:18 2025 GMT Subject: CN = mongo1
Subject Public Key Info: 
   Public Key Algorithm: rsaEncryption Public-Key: (2048 bit)
      00:c5:46:e0:4f:f2:3c:14:0e:67:6c:e6:ee:60:37: 
      ...        
   Exponent: 65537 (0x10001) 
X509v3 extensions: 
   X509v3 Key Usage: Key Encipherment, Data Encipherment 
   X509v3 Extended Key Usage: TLS Web Server Authentication 
X509v3 Subject Alternative Name: 
   DNS:mongo1, IP Address:127.0.0.1, IP Address:0.0.0.0 
X509v3 Subject Key Identifier: F1:EC:87:9E:4B:1C:5B:44:EA:91:68:45:2F:F3:20:44:B0:4D:22:69 
X509v3 Authority Key Identifier: 17:40:89:67:A8:59:00:18:A4:E4:33:BD:F2:7A:2D:D0:16:C7:D2:78 
Signature Algorithm: sha256WithRSAEncryption

内容的提问来源于stack exchange,提问作者Yaniv Dadon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:29:52