过去我一直通过导出带有密码的PFX证书来创建安全的TcpListener,但想知道是否可以跳过此步骤。
我没有使用商业SSL证书,而是拥有一个根CA,用于发行服务器证书。在C#中托管TcpListener时,这些服务器证书需要额外的步骤(我猜是因为未使用CSR)...但如果我确实有私钥和OpenSSL生成/使用的证书呢?
sslCertificate = new X509Certificate2("myExportedCert.pfx", "1234");
这很棒,但是我需要使用openssl命令从证书和私钥创建一个pfx文件,然后编写一些密码,最后将此密码包含在我的代码中。
我想知道这一步是否非常必要。是否有办法从证书创建X509Certificate2,然后应用私钥。构造函数参数只允许使用证书部分,但加密失败,因为没有私钥。
另外,我不想依赖OpenSSL或IIS来导出pfx....似乎很笨拙。
理想情况下:
sslCertificate = new X509Certificate2("myCert.crt");
sslCertificate.ApplyPrivateKey(keyBytes) // <= or "private.key" or whatever
sslStream.AuthenticateAsServer(sslCertificate, false, SslProtocols.Default, false);