2016-05-30 28 views
4

默認情況下,Python的httplib .HTTPSConnection正在使用系統的信任存儲驗證HTTPS證書。 (如何)是否可以設置不同的CA列表來進行驗證,替換默認的列表?如何設置Python的httplib使用的trust-store?

我嘗試設置由httplib使用SSLContext(見下文),但是這隻會添加給定文件中的證書;它不會阻止驗證程序在需要時從系統的商店加載更多證書。

c = ssl.SSLContext(ssl.PROTOCOL_TLSv1) 
c.load_verify_locations(cafile='mozillacerts.pem', capath=None) 

conn = httplib.HTTPSConnection(domain, port, context=c) 

要清楚:如果無法驗證給定文件中的證書的信任路徑,我希望驗證失敗。

(我使用Python 2.7.11 Debian的8本)。

回答

-1

斯特凡,我看到兩個問題你的企圖:您應該使用ssl.PROTOCOL_SSLv23,而不是使用TLSv1這已經是過時的。不要混淆變量的名稱,閱讀鏈接文檔以瞭解這是正確的使用價值。

您不需要重寫默認證書存儲區,而是生成默認識別的正確SSL證書。

您可以從https://letsencrypt.org獲得免費的SSL證書 - 我可以向您保證,它們在所有瀏覽器,Python和JAVA應用程序中都被默認識別。

沒有必要玩證書商店,這是有風險的,這取決於每個平臺。不要補充說,即使是小的更新,它也有很大的突破。

+0

索林您好,感謝您的回答!首先,感謝關於協議常數的評論,我確實在這裏誤導了它的名字。其次,我知道讓我們加密,但我需要模擬特定瀏覽器的行爲,因此需要控制使用哪些CA.它與獲得我管理員驗證的網站無關。 – Stefan

相關問題