我正在尝试创建一个侦听端口并使用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
。
答案 0 :(得分:3)
在表单中使用X509Certificate2
serverCertificate = new X509Certificate2("server.pfx", "secret_password");
您应该以PKCS12格式保存证书。请参阅http://www.madboa.com/geek/openssl/#cert-pkcs12和http://www.openssl.org/docs/apps/pkcs12.html