我正在研究创建X509证书和公用/专用 key 对的一些代码。公钥将添加到证书中,并将其发送到对它进行签名的CA。
然后,通过System.Security.Cryptography.X509Certificates.X509Certificate2类访问返回的证书。现在,我想使用此证书来启动与其他客户端的安全连接。因此,我使用SslStream类。要启动SSL握手,请使用以下方法:
server.AssociatedSslStream.AuthenticateAsServer(
MyCertificate, // Client Certificate
true, // Require Certificate from connecting Peer
SslProtocols.Tls, // Use TLS 1.0
false // check Certificate revocation
);
此方法要求私钥与证书关联。当然,CA返回的证书不包含私钥。但是它作为.key文件存储在硬盘驱动器上。 X509Certificate2类具有一个名为PrivateKey的属性,我想会将其与证书关联,但是我找不到设置该属性的方法。
有什么方法可以将私钥与.net X509类关联?
最佳答案
您可以省去复制粘贴所有代码的麻烦,并将私钥存储在证书旁边的pfx
/pkcs#12
文件中:
openssl pkcs12 -export -in my.cer -inkey my.key -out mycert.pfx
您必须提供一个密码,然后将其传递给
X509Certificate2
的构造函数:X509Certificate2 cert = new X509Certificate2("mycert.pfx","password");
关于c# - 将私钥与.net中的X509Certificate2类相关联,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18462064/