无法使用 MongoDB Compass 连接到 AWS Documentdb。没有传递 sslInvalidHostName 的选项

Unable to connect to AWS Documentdb using MongoDB Compass. No option to pass sslInvalidHostName

AWS DocumentDB 是我们正在尝试迁移到的一项相对较新的服务。要从 VPC 外部连接,您必须创建一个到现有实例的隧道。

例如:

ssh -i "ec2Access.pem" -L 27017:sample-cluster.cluster-cu52jq5kfddg.us-east-1.docdb.amazonaws.com:27017 ubuntu@ec2-34-229-221-164.compute-1.amazonaws.com -N

然后您可以从 mongo shell 连接:

mongo --sslAllowInvalidHostnames --ssl --sslCAFile rds-combined-ca-bundle.pem --username <yourUsername> --password <yourPassword> 

您可以在以下位置查看此信息:https://docs.aws.amazon.com/documentdb/latest/developerguide/connect-from-outside-a-vpc.html

我实际上能够按照上述说明将 shell 放入文档数据库,但我无法使用 MongoDB 罗盘连接到它。我们需要能够为我们的非开发团队做到这一点。

我只使用 MongoDB Compass(社区,v.1.16.4)完成了此操作,没有通过外部工具创建隧道。

首先,从以下地址下载AWS的证书: https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem。 我从以下网站获得了这个 link: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html

还要确保您可以从 EC2 实例访问 DocDB 集群。 为此,请查看为 DocDB 集群指定的安全组设置。 鉴于您能够使用 mongo shell 获得访问权限,您应该拥有它。

然后在 MongoDB Compass 的连接屏幕上指定以下内容(以您的凭据为例):

  • 主机名:sample-cluster.cluster-cu52jq5kfddg.us-east-1.docdb.amazonaws.com
  • 端口:27017
  • 身份验证:Username/Password
  • 用户名:YourDocDB用户名
  • 密码:YourDocDBUserPassword
  • SSL:服务器验证
  • 证书颁发机构:(select 下载了 rds-combined-ca-bundle.pem)
  • SSH 隧道:使用身份文件
  • SSH 主机名:ec2-34-229-221-164.compute-1.amazonaws.com
  • SSH 隧道端口:22
  • SSH 用户名:ubuntu
  • SSH 身份文件:ec2Access.pem