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

MongoDB无法启动,提示SSL证书无效但证书未过期问题求助

MongoDB启动报错SSL证书过期/未生效,但Certbot显示证书仍在有效期的解决办法

问题场景

服务器环境:Ubuntu 18.04.4 LTS、MongoDB v4.2.21
MongoDB启动失败,日志提示SSL证书过期或未生效,但通过certbot查询证书仍在有效期内,所有mongod服务停止,管理网站无法访问,服务无法重启。

报错日志

2022-07-30T05:18:05.262+0000 I CONTROL [main] ***** SERVER RESTARTED *****
2022-07-30T05:18:05.344+0000 F NETWORK [main] The provided SSL certificate is expired or not yet valid.
2022-07-30T05:18:05.344+0000 F - [main] Fatal Assertion 28652 at src/mongo/util/net/ssl_manager_openssl.cpp 1182
2022-07-30T05:18:05.344+0000 F - [main]

***aborting after fassert() failure

排查与解决步骤

  • 检查MongoDB配置的证书路径
    打开MongoDB配置文件(默认路径/etc/mongod.conf),定位net.ssl段,确认PEMKeyFile、CAFile等配置的路径是否指向当前有效的certbot证书,而非旧的过期文件。
    快速查看命令:

    grep -A 10 "net.ssl" /etc/mongod.conf
    
  • 直接验证证书文件的有效性
    不要依赖certbot的查询结果,直接检查MongoDB实际使用的证书文件:

    • 查看证书有效期:
      openssl x509 -in /path/to/your/mongodb-cert.pem -noout -dates
      
    • 验证证书链完整性:
      openssl verify -CAfile /path/to/your/ca-cert.pem /path/to/your/mongodb-cert.pem
      
  • 核对服务器系统时间
    MongoDB依赖系统时间判断证书有效期,若服务器时间与实际时间偏差过大(比如超前导致证书被判定过期,或滞后导致证书未生效),会触发该错误。

    • 查看当前系统时间:
      date
      
    • 同步系统时间(Ubuntu环境):
      sudo apt update && sudo apt install -y ntp
      sudo systemctl restart ntp
      
  • 检查证书文件权限
    MongoDB运行用户(默认是mongodb)必须拥有证书文件的读取权限,否则无法正确加载证书,可能引发误判。

    • 查看权限:
      ls -l /path/to/your/mongodb-cert.pem
      
    • 调整权限:
      sudo chown mongodb:mongodb /path/to/your/mongodb-cert.pem
      sudo chmod 600 /path/to/your/mongodb-cert.pem
      
  • 强制重新生成证书并替换
    若上述步骤均无问题,可能证书文件存在损坏或链不完整,强制重新生成证书:

    sudo certbot renew --force-renewal
    

    生成完成后,将新证书复制到MongoDB配置指定的路径,确保权限正确后重启服务:

    sudo systemctl restart mongod
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:15:27