2017-04-27 32 views
0

我在公司網絡上,我需要使用證書才能訪問某些頁面。我試着在網上尋找一個能夠檢索HTTPS網頁的模塊,並允許我指定要使用的證書。我有這樣的代碼:在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')],)",) 

我希望能找到一個方法來做到它帶有一個已經附帶Python的模塊,而不是依靠便攜式的pip安裝軟件包。

我在Windows上,但我有我的Linux工作站上的證書,我想指向一個文件夾,並且在Windows上也有Ubuntu Bash。

+0

列出的URL是我可以從中檢索源代碼的正常HTTPS站點的示例。內部域未在此問題中列出。 – saniboy

回答

2

你可以通過驗證爲CA_BUNDLE文件或目錄與信任CAs證書路徑:

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