【发布时间】:2017-02-17 00:43:50
【问题描述】:
我正在尝试使用密钥文件连接到托管在 AWS 实例上的 MongoDB。我能够 ssh 进入实例并毫无问题地连接到数据库。当我尝试使用 pymongo 从远程位置连接到数据库时,我收到此错误:
ServerSelectionTimeoutError: SSL handshake failed: EOF occurred in violation of protocol
端口 27017 已打开,源设置为 0.0.0.0/0。
from pymongo import MongoClient
client = MongoClient('mongodb://ec2-123-45-678-910.compute-1.amazonaws.com',
27017,
ssl=True,
ssl_keyfile='/path_to/mykey.pem')
db = client.test
coll = db.foo
coll.insert_many(records)
ServerSelectionTimeoutError: SSL handshake failed: EOF occurred in violation of protocol (_ssl.c:645)
This 的问题与我的问题几乎相同,但错误不同,那里发布的解决方案不适用于我的问题。
这里的地址和密钥已更改,我已经为此转了几个小时,但没有运气,将不胜感激。
【问题讨论】:
-
这个错误听起来好像服务器或客户端没有配置做 SSL,也许见docs.mongodb.com/manual/tutorial/configure-ssl
-
ssl_keyfile参数值是机器实例还是 MongoDB 的pem?见Configure MongoDB for TLS/SSL
标签: python mongodb amazon-web-services ssl pymongo