C# 设置具有签名证书的ssl服务器套接字
我正在尝试创建一个简单的服务器,它侦听端口并使用ssl进行身份验证。我有档案C# 设置具有签名证书的ssl服务器套接字,c#,ssl,x509certificate,C#,Ssl,X509certificate,我正在尝试创建一个简单的服务器,它侦听端口并使用ssl进行身份验证。我有档案 server.crt server.key my-ca.crt 通过openssl教程()获得my-ca.crt是我自己的ca证书,server.crt包含x509服务器证书(用my-ca.crt签名)和server.key是对应的私钥 我现在不知道如何在c#中加载这三个文件;我有点像 serverCertificate = new X509Certificate2("server.crt", "secret_pas
server.crt
server.key
my-ca.crt
通过openssl教程()获得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
以在表单中使用X509Certificate2
serverCertificate = new X509Certificate2("server.pfx", "secret_password");
您应该以PKCS12格式保存证书。请参阅,我尝试过这样做:
openssl-req-x509-nodes-days 365-newkey rsa:1024-keyout“temp\signkey.key”-out“temp\signkey.key”-out“temp\signkey.key”-config“openssl.cfg”
和openssl-pkcs12-export-out“temp\certificate.pfx”-in“temp\signkey.key”-name”name“name”
,但例外情况仍然存在。有什么想法吗?@Christoph您需要在导出过程中包含私钥,如下所示:openssl pkcs12-export-out certificate.pfx-in certificate.cer-inkey certificate.key-name“SSL流证书”
和-inkey
参数。