Я пытаюсь создать пару ключей RSA, которую я могу использовать с System.Security.Cryptography.X509Certificates.X509Certificate2
, используя OpenSSL.
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 = Колорадо / L = Колорадо-Спрингс / 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()