>我正在尝试连接到我们的 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
尝试将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
我从这个答案中得到了这个命令
对于那些在 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
基本上,只需忽略无效证书。