我需要使用由我們的公司授權簽署的證書對服務器進行HTTPS調用。我如何配置python來信任這個證書頒發機構?使用Python中的公司認證機構進行HTTPS證書驗證
1
A
回答
0
默認情況下(假設您使用的是httplib.HTTPSConnection
),您無需執行任何操作,即httplib
doesn't do any certificate verification(same applies to urllib
)。
當然,這不是一件好事,你應該驗證服務器證書。有多種解決方案(見this question)。
總之,您可能必須手動擴展httplib.HTTPConnection
才能通過ssl.wrap_socket
手動將套接字轉換爲SSL套接字,以便能夠插入驗證回調(您需要驗證主機名和證書) 。
另外,如果你不侷限於httplib
,使用PycURL肯定會使這個更清潔。您可以配置CA_INFO
(或CA_PATH
)以指向您的內部CA證書。另外,它通常沒有預先定義的CA列表,但是您可以從here(從Mozilla列表中轉換)中獲得一個,並在需要時將這些證書添加到您信任的CA列表中。
0
如果您正在尋找示例代碼來解決這個問題,在這裏它是在PycURL:
import pycurl
curl = pycurl.Curl()
curl.setopt(pycurl.URL, "https://your-secure-website.com/")
curl.setopt(pycurl.SSL_VERIFYPEER, 1)
curl.setopt(pycurl.SSL_VERIFYHOST, 2)
curl.setopt(pycurl.CAINFO, "/path/to/your-corporate-certificate-chain.crt")
curl.perform()
請務必將您的企業證書,chain.crt文件放置在可訪問的位置和用途pycurl.CAINFO選項指向它。
相關問題
- 1. 如何在Java中使用HttpClient進行HTTPS請求,無需進行證書認證或主機名驗證?
- 2. 使用Python驗證證書
- 3. Boost,asio,https和主機/證書驗證
- 4. 使用AFNetworking進行SSL證書驗證
- 5. Rackspace公司認證
- 6. 使用自簽名證書進行證書認證
- 7. X509使用SerialNumber或公鑰進行證書驗證
- 8. LittleProxy和公司證書
- 9. 如何在Python中使用證書進行GET認證以進行身份驗證
- 10. 未使用goDaddy證書驗證Https主機名
- 11. 證書頒發機構最初如何驗證公鑰?
- 12. 使用.cer證書進行HTTPS請求
- 13. 使用https中的證書
- 14. 使用Python驗證SSL證書
- 15. 在powershell https請求中使用pem證書和密鑰進行身份驗證
- 16. 只使用Python社會認證和Django進行關聯驗證
- 17. Azure KeyVaultClient:使用Java中的證書進行身份驗證
- 18. 禁用python中的默認證書驗證2.7.9
- 19. Asp.net,Silverlight和HTTPS - 總是驗證證書
- 20. java https沒有驗證證書
- 21. PHP客戶端驗證https證書
- 22. NSMutableURLRequest檢查Https SSL證書驗證
- 23. java忽略https證書驗證
- 24. Java 6的HTTPS客戶機證書認證
- 25. 證書認證
- 26. 使用http://rubygems.org替代https時使用「證書驗證失敗」
- 27. 使用證書驗證的本地C++ HTTPS REST調用
- 28. 使用證書公鑰驗證java中的簽名
- 29. 使用SQL Server進行基於PKI的x.509證書認證?
- 30. Ejabberd SASL外部認證使用證書進行客戶端SSL認證
[HTTPS連接Python]的可能重複(http://stackoverflow.com/questions/2146383/https-connection-python) –
[用Python驗證SSL證書]的可能重複(http://stackoverflow.com/ questions/1087227/validate-ssl-certificates-with-python) – systempuntoout
這不是如何製作https/ssl,而是如何添加一個受信任的權威 – Brig