2012-11-26 62 views
0

我目前正在嘗試將SSL添加到我正在處理的項目中,因此我檢查了MSDN的SSL流示例服務器。 http://msdn.microsoft.com/en-us/library/system.net.security.sslstream.aspx我跑了它,它運行,但當客戶端連接它會拋出此錯誤C#SSL執行問題

未處理的異常:System.IO.IOException:身份驗證或解密失敗。 ---> Mono.Security.Protocol.Tls.TlsException:客戶端停止握手。 在Mono.Security.Protocol.Tls.SslServerStream.OnNegotiateHandshakeCallback(IAsyncResult的asyncResult)[0x00000]在:0 在Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback(IAsyncResult的asyncResult)[0x00000]在:0 ---內部異常堆棧跟蹤結束--- at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback(IAsyncResult asyncResult)[0x00000] in:0

發生了什麼?爲什麼它只需要證書而不是私鑰文件? SSL只是不能這樣工作。

感謝先進!

回答

2

私鑰是通過證書對象提供的,請參閱X509Certificate2.PrivateKey。如果您有證書文件和單獨的私鑰文件,我認爲您必須手動加載私鑰並將其分配給證書的PrivateKey屬性。

+1

+1,因爲需要私鑰/公鑰的證書是.NET的常見做法,http://www.lextm.com/2012/02/simple-publicprivate-key-signing-sample.html –

+0

.NET密碼術*是以證書爲中心的,特別是在進口/出口部門。這就是BouncyCastle如此受歡迎的原因。 –

+0

感謝您的快速回答。 – David