我面对:在.NET 2路SSL配置一些问题。 不知怎的,当我使用.CER文件和密码在构造函数中创建X509Certificate2对象,密码被忽略(我给了错误的密码,它的工作 - 响应已成功返回)。 在另一方面,当我使用.p12文件是否如预期的行为(密码错误导致失败的结果)
有任何想法吗?
谢谢。
我面对:在.NET 2路SSL配置一些问题。 不知怎的,当我使用.CER文件和密码在构造函数中创建X509Certificate2对象,密码被忽略(我给了错误的密码,它的工作 - 响应已成功返回)。 在另一方面,当我使用.p12文件是否如预期的行为(密码错误导致失败的结果)
有任何想法吗?
谢谢。
.cer文件包含(这是常见的情况)仅在未加密形式的X509证书。 在这种情况下,不需要密码的证书进行解码。 我假设X509Certificate2构造尝试确定字节[]参数的编码格式,并且当不需要它忽略密码参数。 而且它更可能的是,在被创建后,该PrivateKey
对象的属性为null
。
当加载.cer文件,你应该使用哪一个只需要1个字节[]参数构造函数。 该构造的文件明确规定了支持的数据格式:
此构造函数创建使用从字节数组证书信息的新X509Certificate2对象。 字节数组可以是二元(DER)编码或Base64编码的X.509数据。 字节数组,也可以是PKCS7(验证码)签名的文件; 签名者证书用于创建对象。
在PKCS#12格式 (或名为.p12 .pfx文件)可以证书和私钥的容器格式。 在这种情况下,需要密码才能解密加密私钥。 其实用PKCS#12文件的行为的X509Certificate2构造文件中有所说明:
该构造函数用于与PKCS12(PFX)包含证书的私钥文件。 调用此构造函数使用正确的密码解密私钥并将其保存到一个关键的容器。