2016-10-07 9 views
1

AWSインスタンスでホストされているMongoDBにキーファイルで接続しようとしています。私はインスタンスにsshし、問題なくデータベースに接続することができます。 pymongoを使用してリモートロケーションからデータベースに接続しようとすると、次のエラーが表示されます。 ServerSelectionTimeoutError: SSL handshake failed: EOF occurred in violation of protocolpymongoでawsに接続するときのServerSelectionTimeoutError

ポート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質問は私とほぼ同じです、しかし、誤差が異なっており、解決策は私の問題にそこは適用されません掲載しました。ここ

アドレスとキーが、私は運と時間、この上界で起こってきた、変更された、任意の助けいただければ幸いです。

+0

エラーは、サーバーまたはクライアントがSSLを行うように構成されていないように聞こえる、多分https://docs.mongodb.com/manualを参照してください/ tutorial/configure-ssl/ – at0mzk

+0

マシンインスタンスまたはMongoDBに対する 'ssl_keyfile'パラメータの値は' pem'ですか? [MongoDB for TLS/SSLの設定](https://docs.mongodb.com/manual/tutorial/configure-ssl/)を参照してください。 –

答えて

1

PymongoモジュールでDocumentDB Azure(データベース)に接続するのと同じ問題(SSLハンドシェイク)がありました。

エラー:これを解決するには、私が使っていたpymongo

ServerSelectionTimeoutError: SSL handshake failed: EOF occurred in violation of protocol (_ssl.c:590)

== 3.4.0

変更3.3をインストールしてpymongoのバージョン。 0バージョン

pip install pymongo==3.3.0

試してみてください。

import pymongo pymongo.__version__

1

この問題は、次の問題を引き起こす可能性があります:pymongoの

1)バージョン(私のために働いた3.3.0を、使用することをお勧め)

2)DNSの問題などがあります。実際には、DNSの問題を確認するには

ファイアウォールの問題

4することができXX.XX.XX.XXポート

3)

のtelnet)は、SSLキーで問題となることがあります。

輸入OS

輸入pymongo

輸入SSL

URL = "URL:?ポート/ DB SSL = true" を

クライアント= pymongo.MongoClientテストに次のことを試してみてください(URL、ssl_cert_reqs = ssl.CERT_NONE)

デシベル=クライアント。get_default_database()

印刷デシベル

印刷db.collection_names()

関連する問題