我有一个AWS DocumentDB设置,我可以通过我的跳箱连接到正常使用:
mongo --ssl --host aws-host:27017 --sslCAFile rds-combined-ca-bundle.pem --username my_user --password <insertYourPassword>
我希望能够通过localhost连接到它进行一些测试。我无法直接连接,所以我尝试从跳转中打开一个隧道:
ssh -i ~/.ssh/my-key user@my_jump -L 27017:aws-host:27017 -N
之后我尝试了基本的MongoDB connect命令:
mongo --ssl --host localhost:27017 --sslCAFile rds-combined-ca-bundle.pem --username my_user --password <insertYourPassword>
我明白了一个错误:
服务器证书与主机名不匹配。主机名:localhost与SAN不匹配
我尝试使用export http_proxy
使用http://my_jump:27017
并再次使用上面的命令,没有运气。
有关如何连接的任何建议或帮助?
尝试disable ssl hostname validation:
mongo --ssl --sslAllowInvalidHostnames ...
注意--sslAllowInvalidHostnames可从3.0版获得。
如果这不起作用,请尝试从连接选项中完全删除--ssl
,如documentation所示:
mongo shell验证主机名(在--host选项或连接字符串中指定)是否与mongod或mongos提供的证书中的SAN(或者,如果SAN不存在,CN)匹配。如果存在SAN,则mongo与CN不匹配。如果主机名与SAN(或CN)不匹配,则mongo shell将无法连接。