//cert is an EF Entity and
// cert.CertificatePKCS12 is a byte[] with the certificate.
var certificate = new X509Certificate(cert.CertificatePKCS12, "SomePassword");
当从我们的数据库加载证书时,在我们的测试服务器(Windows 2008 R2/IIS7.5)上,我们遇到了以下异常:
System.Security.Cryptography.CryptographicException: An internal error occurred.
at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)
at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags)
注意: 这个问题在本地环境下(Windows 7/Casini)并不会出现。
非常感谢任何有关此问题的见解。
cert.CertificatePKCS12
中的byte[]
data。如果没有数据,我们只能猜测异常“发生了内部错误”的原因。因此,我的建议是您创建测试证书,在您的环境中使用它来重现问题,将其保存在文件中,并提供链接和密码(如“SomePassword”)以解码证书。检查数据后,将更有机会找到原因并提出解决方案。 - Olegcert.CertificatePKCS12
的PFX文件。 - Oleg