Mongodb连接尝试失败:SSLHandshakeFailed:SSL对等证书验证失败:自签名证书

xpszyzbs  于 2024-01-08  发布在  Go
关注(0)|答案(1)|浏览(287)

我在Ubuntu 16.04.5 LTS服务器上设置了一个具有SSL安全性的mongoDB数据库,并且我已经使用了几个月。为了在mongo上设置SSL,我遵循了Rajan Maharjan在medium.com (link)上的教程。在短时间内不使用它之后,我回到我的服务器,收到了以下错误消息:
1x个月
查看Mongo日志,我发现:
[PeriodicTaskRunner] Server certificate is now invalid. It expired on 2018-11-10T08:10:11.000Z
因此,我使用rootCA.key文件重新生成并重新签署了所有证书,步骤与第一次创建证书时相同。我重新启动mongod:
service mongod restart
现在我遇到了“自签名证书”错误:

  1. MongoDB shell version v4.0.2
  2. connecting to: mongodb://IP:port/
  3. 2018-11-21T13:11:10.584+0000 E NETWORK [js] SSL peer certificate
  4. validation failed: self signed certificate
  5. 2018-11-21T13:11:10.584+0000 E QUERY [js] Error:
  6. couldn't connect to server IP:port, connection attempt failed:
  7. SSLHandshakeFailed: SSL peer certificate validation failed: self signed certificate :
  8. connect@src/mongo/shell/mongo.js:257:13
  9. @(connect):1:6
  10. exception: connect failed

字符串
我的连接字符串如下:
mongo --ssl --sslCAFile /PATH/TO/rootCA.pem --sslPEMKeyFile /PATH/TO/mongodb.pem --host IP:port
我还没有找到任何关于重新签署mongoDB证书的资源。任何帮助都将不胜感激。

编辑

/etc/mongod.conf:

  1. # mongod.conf
  2. # for documentation of all options, see:
  3. # http://docs.mongodb.org/manual/reference/configuration-options/
  4. # Where and how to store data.
  5. storage:
  6. dbPath: /var/lib/mongodb
  7. journal:
  8. enabled: true
  9. # engine:
  10. # mmapv1:
  11. # wiredTiger:
  12. # where to write logging data.
  13. systemLog:
  14. destination: file
  15. logAppend: true
  16. path: /var/log/mongodb/mongod.log
  17. # network interfaces
  18. net:
  19. port: PORT
  20. bindIp: IP
  21. ssl:
  22. mode: requireSSL
  23. PEMKeyFile: /etc/ssl/mongodb.pem
  24. CAFile: /etc/ssl/rootCA.pem
  25. # how the process runs
  26. processManagement:
  27. timeZoneInfo: /usr/share/zoneinfo
  28. #security:
  29. security:
  30. authorization: "enabled"
  31. #operationProfiling:
  32. #replication:
  33. #sharding:
  34. ## Enterprise-Only Options:
  35. #auditLog:
  36. #snmp:

kse8i1jr

kse8i1jr1#

我已经设法让它再次工作,通过以下步骤(其中,由于某种原因,没有工作之前):

  • /etc/ssl/中删除mongodb.*文件
  • 使用命令
  1. openssl genrsa -out mongodb.key 2048
  2. openssl req -new -key mongodb.key -out mongodb.csr

重新生成证书

  • 字段Common Name (eg, YOUR name) []中的服务器地址
  • 生成证书
  1. openssl x509 -req -in mongodb.csr -CA rootCA.pem -CAkey /PATH/TO/rootCA.key -CAcreateserial -out mongodb.crt -days 500 -sha256
  2. cat mongodb.key mongodb.crt > mongodb.pem
  3. chmod 666 mongodb.pem
  4. service mongod restart
  5. cat /var/log/mongodb/mongod.log (*to check status*)

启动mongo shell

  1. mongo --ssl --sslCAFile /PATH/TO/rootCA.pem --sslPEMKeyFile /PATH/TO/mongodb.pem --host IP:PORT


谢谢@AniketMaithani试图帮助我解决这个问题。

展开查看全部

相关问题