2010-11-10 133 views
0

我正在嘗試使用TLS協議打開安全套接字。查看客戶端和服務器之間發送的記錄,我可以通過ClientHello,ServerHello,證書(服務器),ServerHelloDone,ClientKeyExchange和ChangeCipherSpec(客戶端)進行查看。但是服務器無法解密客戶端的Finished消息。接下來,一些常規的TCP消息被交換,首先從服務器發送帶有完成標誌的記錄,然後從客戶端發送兩條記錄,第二條帶有完成標誌,然後再從服務器發送一條記錄。使用新證書後TLS握手失敗

此設置用於工作,但我最近更改了服務器的證書。鑑於這種情況,我預料握手會在證書記錄後失敗,而不是嘗試解密第一部分加密數據。這個handhsake錯誤是否表示未經身份驗證的證書?如果不是它能表明什麼?我沒有收到任何警報。

+0

請發佈消息跟蹤。 – EJP 2010-11-10 03:23:16

+0

我很好奇,如果你發現這件事。更新? – 2010-11-14 18:57:17

回答

-1

如果我大膽猜測,我會猜想問題完全在服務器端。我猜你沒有正確更改私鑰和公鑰(證書),並且服務器試圖用舊私鑰解密。我相信您所描述的TLS消息序列與此場景一致。

+0

否。服務器使用其私鑰唯一需要簽名的證書。客戶端使用嵌入在證書中的公鑰檢查簽名。如果這是問題,握手會失敗。 – EJP 2010-11-10 03:22:10

+0

@EJP:服務器不會使用其私鑰簽名證書,證書頒發機構會這樣做。服務器必須使用其私鑰解密客戶端密鑰交換消息。 – 2010-11-10 12:00:54