2014-10-29 542 views
1

我正在使用pyOpenSSL,它是OpenSSL的包裝。我有一個客戶端程序試圖連接到我的服務器,並反覆在服務器上獲得sslv3 alert bad certificate。直到我意識到這是由於客戶的時鐘設置不當導致我能夠找出問題所在。我猜測客戶端看到服務器的證書是在「將來」的日期,並以某種方式導致服務器上的sslv3 alert bad certificateOpenSSL識別「壞證書」的原因

有什麼辦法可以得到更好的描述爲什麼一個特定的證書失敗?我假設這種情況下,由於時鐘設置不正確,客戶端的驗證失敗,但服務器端的錯誤與發送錯誤證書並在服務器端驗證失敗時相同。

+0

在「未來」日期......你剛剛救了我的一天! – DrP3pp3r 2015-08-24 14:37:48

回答

1

不幸的是,問題描述相當有限。通過TLS警報傳輸錯誤。每個警報只是一個沒有任何附加信息的數字,定義的警報只有幾個,請參閱http://en.wikipedia.org/wiki/Transport_Layer_Security#Alert_protocol。例如,對於已過期的證書有一個提示,但對於尚未生效的證書沒有提示,這對於您的情況是必要的。所以客戶可以發回的是證書不好。

+0

那麼,我在兩端都使用OpenSSL ...有什麼我可以在客戶端上看到錯誤,所以我至少可以記錄它嗎? – 2014-10-29 14:39:15

+0

請參閱[X509_STORE_CTX_get_error]的文檔(https://www.openssl.org/docs/crypto/X509_STORE_CTX_get_error.html)。通過這種方式,您可以在驗證失敗的一側獲得更詳細的錯誤代碼。 – 2014-10-29 14:59:02