通过代理的 AWS DocumentDB

AWS DocumentDB through Proxy

我有一个 AWS DocumentDB 设置,我可以使用以下方法通过我的跳转箱连接到它:

mongo --ssl --host aws-host:27017 --sslCAFile rds-combined-ca-bundle.pem --username my_user --password <insertYourPassword>

我希望能够通过本地主机连接到它进行一些测试。我无法直接连接,所以我试图从我的跳跃中打开一个隧道:

ssh -i ~/.ssh/my-key user@my_jump -L 27017:aws-host:27017 -N

之后我尝试了基本的 MongoDB 连接命令:

mongo --ssl --host localhost:27017 --sslCAFile rds-combined-ca-bundle.pem --username my_user --password <insertYourPassword>

我收到一条错误消息:

The server certificate does not match the host name. Hostname: localhost does not match SAN(s)

我尝试使用 export http_proxy 来使用 http://my_jump:27017 并再次使用上面的命令,但没有成功。

关于如何连接有什么建议或帮助吗?

尝试disable ssl hostname validation:

mongo --ssl --sslAllowInvalidHostnames ...

注意 --sslAllowInvalidHostnames 可从 3.0 版.

如果这不起作用,请尝试从连接选项中完全删除 --ssl,根据 documentation:

The mongo shell verifies that the hostname (specified in --host option or the connection string) matches the SAN (or, if SAN is not present, the CN) in the certificate presented by the mongod or mongos. If SAN is present, mongo does not match against the CN. If the hostname does not match the SAN (or CN), the mongo shell will fail to connect.