设置带有签名证书的ssl服务器套接字

时间:2010-07-12 16:39:44

标签: c# ssl x509certificate

我正在尝试创建一个侦听端口并使用ssl进行身份验证的简单服务器。我有文件

server.crt
server.key
my-ca.crt

使用openssl教程(http://www.vanemery.com/Linux/Apache/apache-SSL.html)获得。 my-ca.crt是我自己的CA证书,server.crt包含x509服务器证书(使用my-ca.crt签名),server.key是相应的私钥。

我现在不知道如何在c#中加载这三个文件;我有类似

的东西
serverCertificate = new X509Certificate2("server.crt", "secret_password");
sslStream.AuthenticateAsServer(serverCertificate, false, SslProtocols.Tls, true);

哪个不起作用(我得到了

Unhandled Exception: System.NotSupportedException: The server mode SSL must use a certificate with the associated private key.

) 但我不知道如何添加server.key和/或my-ca.crt

1 个答案:

答案 0 :(得分:3)

在表单中使用X509Certificate2

serverCertificate = new X509Certificate2("server.pfx", "secret_password");

您应该以PKCS12格式保存证书。请参阅http://www.madboa.com/geek/openssl/#cert-pkcs12http://www.openssl.org/docs/apps/pkcs12.html