我有一個定製的HTTP/S客戶端(基於twisted.HTTPClient),它連接到真實世界的服務器,所以我需要處理錯誤的證書。如何確定證書驗證錯誤
當我連接到https://expired.badssl.com時,收到一個OpenSSL.SSL.Error,其中args /消息爲[('SSL例程','SSL3_GET_SERVER_CERTIFICATE','證書驗證失敗']]。到現在爲止還挺好..!
在我的情況下,我需要以特定的方式處理證書錯誤,那麼如何消除這種類型的SSL.Error與其他人的歧義? 我可以找到的唯一方法是做一個字符串比較......這感覺...錯了。
在適當的OpenSSL的情況下,你會叫['SSL_get_verify_result'(https://開頭WWW。 openssl.org/docs/man1.0.2/ssl/SSL_get_verify_result.html)獲得成功/失敗狀態。在失敗的情況下,代碼將表示已過期的證書,不可信的路徑/鏈等。注意手冊頁上的鏈接似乎有些彎曲。以下是['verify' app](https://www.openssl.org/docs/man1.0.2/apps/verify.html)與原因/錯誤代碼的鏈接。我不確定你在Python中做了什麼。另請參閱OpenSSL wiki上的[SSL/TLS Client](https://wiki.openssl.org/index.php/SSL/TLS_Client)。 – jww