2017-10-09 2 views
1

私はハンドルサーバに接続するときに問題にパイソン - 問題のSSL:CERTIFICATE_VERIFY_FAILED

requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:579) 

を解決しようとしています。

一部のユーザーが提案し、私は問題を解決することはできないんだけど、私はまた

ssl._create_default_https_context = ssl._create_unverified_context 

を使用。

他の解決方法はありますか?

おかげ

+0

Pythonバージョンとお使いのOSを提供してください – Antwane

+0

@Antwane Centos 7とPython 2.7.5 – Fab

+0

この問題を解決できましたか? –

答えて

0

あなただけの証明書の検証を無視したい場合は、requestsは、この目的のために確認するキーワード引数受け入れ:これはおそらくInsecureRequestWarningをトリガしますが、要求は関係なく、OKを返す必要があり

requests.get('https://www.google.com', verify=False) 

を。

+0

私はこの解決策を試しました。 'r = requests.get(url、auth = HTTPBasicAuth(user、pwd)、verify = False)'。 httpSは空の応答を返しますが、httpは正常に動作します。 – Fab

0

サーバーには、認証局によって署名された有効な証明書がありますか?

自己署名証明書を使用する場合は、公開証明書のコピーをPythonプロジェクトに保存し、要求の検証パラメータに証明書名を渡すことをお勧めします。

証明書を保存するには、Firefoxのサーバーにアクセスし、アドレスバーの近くにある[ロック]アイコンをクリックし、[証明書]、[詳細]、[証明書の表示]

"my_server_certificate.pem"という.pemファイルがあります。

ご要望にお使いのSessionオブジェクトを作成する際には、パラメータを渡すことができます。

session = requests.Session() 
session.verify = "my_server_certificate.pem" 

私のPythonスクリプトとチャールズ・プロキシを使用したとき、私は同様の問題を抱えていました。私はこれがあなたの問題を解決するのに役立つことを願っています。

+0

'__init __()に予期しないキーワード引数 'verify'があります。私はセッションがもはやそのコンストラクタで引数を取らないことを読んでいます。現在のところ、このドキュメントは古くなっています。 'session = requests.Session()'と 'session.verify = False'を試しましたが、それでも問題は発生します。 – Fab

+0

私の悪いです。セッションを作成してからsession.verify = "my_server_certificate.pem"を設定する必要があります –

+0

これを反映するように答えを編集しました。 –