2016-04-07 15 views
0

https URLのみが動作し、有効な証明書がないページのコンテンツを取得しようとしています。CERTIFICATE_VERIFY_FAILED requests.session()get request

import requests 
session_requests = requests.session() 

result = session_requests.get("some https url") 

私は、次のエラーを取得しています:私はこの使用している場合

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

は、しかし:

requests.get('https://url.retail.publishedprices.co.il/login', verify=False) 

をそれは動作しますが、私はrequests.session()との事の同じ種類を行う必要があります私がログインしているからです。

答えて

0

このサイトではSSLLabs report

  • 証明書の名前がURLに指定された名前と一致していないことがわかります。ブラウザでこのサイトにアクセスしようとすると、エラーメッセージも表示されます。
  • 信頼チェーンが不完全であるため、検証できません。いくつかのブラウザは、欠落している中間証明書をダウンロードしようとするかもしれませんが、他のブラウザもここで失敗するだけです。

この壊れた設定を回避する代わりに、これらの深刻な問題が修正されるようにサイトを設定した人に連絡することをお勧めします。修正後、スクリプトの回避策は必要ありません。

また、この状況では、有効な回避策として検証を無効にすることも考慮していません。これは機密データ(少なくともユーザー名とパスワード)を要求する公開アクセス可能なサイトです。また、このサイトはhttpsを明示的に実施しています。

+0

サイトはhttps://url.retail.publishedprices.co.il/loginであり、いいえわかりやすいデータはありません。その公開記録。パスワードなしのユーザー名でログインしてください。とにかくPythonでそれを解決するには? –

+0

@AryehArmon:明らかにパスワードを要求しています。そして、それはhttpsを強制しています。とにかくこのデータが公開されていれば、壊れたサイトを扱うのではなく、他の場所から取得するだけではいかがですか? –

+0

@AryehArmon:無効化の検証とは別に、2.7.xのセッションでも動作するはずです - https://github.com/kennethreitz/requests/issues/2255を参照してください。 –

関連する問題