【发布时间】:2018-10-06 07:29:01
【问题描述】:
我正在尝试创建一个 RSA 密钥对,我可以使用 OpenSSL 与 System.Security.Cryptography.X509Certificates.X509Certificate2 一起使用。
我设法生成的 PFX 给了我这个堆栈跟踪
创建一个未加密的私钥(我意识到这不是最佳做法)
openssl genrsa -out private.pem 2048
从私钥创建公钥
openssl rsa -in private.pem -outform PEM -pubout -out public.pem
从私钥创建证书文件
openssl req -x509 -key private.pem -out cert.pem -days 365 -nodes -subj "/C=US/ST=Colorado/L=Colorado Springs/O=Contoso/OU=Security/CN=mypurpose.contoso.org"
使用自签名证书创建 pfx 文件
openssl pkcs12 -in cert.pem -inkey private.pem -export -out combined.pfx
提示输入密码以保护 pkcs
尝试用
实例化X509Certificate2的实例
new X509Certificate2(@"C:\path\to\combined.pfx", "password", X509KeyStorageFlags.Exportable);
at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)
at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags)
at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags)
at Program.Main()
【问题讨论】: