2017-04-27 22 views
0

私は企業ネットワーク上にあります。特定のページにアクセスするために証明書を使用する必要があります。 HTTPS Webページを取得し、使用する証明書を指定できるモジュールをオンラインで探してみました。私はこのコードを持っている:Python2.7でのSSL証明書の使用。*​​

import requests 
page = requests.get("https://k9ballistics.com/",'lxml') 
thing = page.content 
thing = thing.split('\n') 
for m in thing: 
    if '<tr>' in m: 
     print m 

これは正常なHTTPSページを取得する上で動作しますが、私は私達のページにアクセスしようとすると、それは、このエラーがスローされます。

requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",) 

私が行うための方法を見つけるために期待していました移植性のためにpipインストールされたパッケージに頼るのではなく、既にPythonに付属しているモジュールを使用しています。

私はWindows上ですが、私の指摘したいフォルダに私のLinuxワークステーションからの証明書を持っていますし、Windows上にUbuntu Bashもあります。

+0

表示されているURLは、ソースコードを取得できる通常のHTTPSサイトの例です。内部ドメインはこの質問にはリストされていません。 – saniboy

答えて

2

あなたは、信頼できるCAsの証明書を持つCA_BUNDLEファイルまたはディレクトリへのパスを確認渡すことができます:

requests.get('https://eg.com', verify='/path/to/certfile.pem') 

または永続:

s = requests.Session() 
s.verify = '/path/to/certfile.pem' 

また、あなたがverify=FalseでSSL証明書の検証無視することができます。

詳しくはSSL Cert Verificationをご覧ください。

+0

私はまだ同じエラーを受けていますが、この場合、これらは私が必要とする証明書ではないと思います。あなたは私の質問に答えました。 – saniboy