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

尼古拉斯·格博雷尔

我在Ubuntu 16.04.5 LTS服务器上建立了具有SSL安全性的mongoDB数据库,并且我已经使用了几个月。要在mongo上设置SSL,我遵循了medium.com (链接)上的Rajan Maharjan的教程短暂不使用服务器后返回我的服务器,我收到以下错误消息:

SSL peer certificate validation failed: certificate has expired

查看mongo日志,我发现:

[PeriodicTaskRunner] Server certificate is now invalid. It expired on 2018-11-10T08:10:11.000Z

因此,按照与首次创建证书时相同的步骤,使用rootCA.key文件重新生成并重新签署了所有证书。我重新启动mongod:

service mongod restart

现在,我出现了“自签名证书”错误:

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

我的连接字符串如下:

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

我没有找到有关重新签署mongoDB证书的任何资源。任何帮助将非常感激。

编辑

/etc/mongod.conf:

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: PORT
  bindIp: IP
  ssl:
    mode: requireSSL
    PEMKeyFile: /etc/ssl/mongodb.pem
    CAFile: /etc/ssl/rootCA.pem

# how the process runs
 processManagement:
  timeZoneInfo: /usr/share/zoneinfo

#security:
security:
   authorization: "enabled"

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:
尼古拉斯·格博雷尔

通过执行以下步骤,我设法使其重新工作(由于某种原因,该操作以前不起作用):

  • 从中删除mongodb。*文件 /etc/ssl/
  • 使用以下命令重新生成证书:
    • openssl genrsa -out mongodb.key 2048
    • openssl req -new -key mongodb.key -out mongodb.csr
    • 字段中的服务器地址 Common Name (eg, YOUR name) []
    • openssl x509 -req -in mongodb.csr -CA rootCA.pem -CAkey /PATH/TO/rootCA.key -CAcreateserial -out mongodb.crt -days 500 -sha256
    • 猫mongodb.key mongodb.crt> mongodb.pem
  • chmod 666 mongodb.pem
  • 服务mongod重新启动
  • cat /var/log/mongodb/mongod.log(检查状态

并启动mongo shell

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

感谢@AniketMaithani尝试帮助我解决此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章