1

我正在尝试连接到我们的 AWS DocumentDB,但它失败并出现以下错误:

2019-12-04T17:46:52.551-0800 W  CONTROL  [main] Option: ssl is deprecated. Please use tls instead.
2019-12-04T17:46:52.551-0800 W  CONTROL  [main] Option: sslCAFile is deprecated. Please use tlsCAFile instead.
2019-12-04T17:46:52.551-0800 W  CONTROL  [main] Option: sslAllowInvalidHostnames is deprecated. Please use tlsAllowInvalidHostnames instead.
MongoDB shell version v4.2.1
connecting to: mongodb://insights-db-2019-08-12-18-32-13.cih94xwdmniv.us-west-2.docdb.amazonaws.com:27017/?compressors=disabled&gssapiServiceName=mongodb
2019-12-04T17:46:52.684-0800 E  NETWORK  [js] SSL peer certificate validation failed: Certificate trust failure: CSSMERR_CSP_UNSUPPORTED_KEY_SIZE; connection rejected
2019-12-04T17:46:52.685-0800 E  QUERY    [js] Error: couldn't connect to server insights-db-2019-08-12-18-32-13.cih94xwdmniv.us-west-2.docdb.amazonaws.com:27017, connection attempt failed: SSLHandshakeFailed: SSL peer certificate validation failed: Certificate trust failure: CSSMERR_CSP_UNSUPPORTED_KEY_SIZE; connection rejected :
connect@src/mongo/shell/mongo.js:341:17
@(connect):2:6
2019-12-04T17:46:52.687-0800 F  -        [main] exception: connect failed
2019-12-04T17:46:52.687-0800 E  -        [main] exiting with code 1

我使用的命令: mongo --ssl --host MY_DOCUMENT_DB_HOST_AND_PORT --sslCAFile MY_KEY_PATH --username MY_USERNAME --password MY_PASSWORD

我已经尝试过一些故障排除:

  • 将完全相同的命令和密钥发送到同一网络上的另一台 Mac OS X 机器 --> 工作正常
  • 卸载并重新安装了我的 mongo 应用程序mongodb-community@4.2
4

2 回答 2

1

对于那些在 2020 年后遇到此问题的人,请参阅此线程中的最后回复:https ://forums.aws.amazon.com/message.jspa?messageID=936916

Mac OS X Catalina 更新了可信证书的要求。受信任的证书现在必须有效期为 825 天或更短(请参阅https://support.apple.com/en-us/HT210176)。Amazon DocumentDB 实例证书的有效期超过四年,超过 Mac OS X 的最长期限。为了从运行 Mac OS X Catalina 的计算机直接连接到 Amazon DocumentDB 集群,您必须在创建 TLS 连接时允许无效证书。在这种情况下,无效证书意味着有效期超过 825 天。在连接到您的 Amazon DocumentDB 集群时,您应该在允许无效证书之前了解风险。

要使用 AWS CLI 从 OS X Catalina 连接到 Amazon DocumentDB 集群,请使用 tlsAllowInvalidCertificates 参数。

mongo --tls --host <hostname> --username <username> --password <password> --port 27017 --tlsAllowInvalidCertificates

基本上,只需忽略无效证书。

于 2021-02-22T08:41:45.953 回答
0

尝试将rds-combined-ca-bundle.pem证书添加到您的 Mac,尝试通过转发端口使用 localhost 连接到 DocumentDb 时出现非常类似的错误,我运行的命令是

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain rds-combined-ca-bundle.pem

我从 这个答案中得到了这个命令

于 2019-12-20T02:29:26.093 回答