X509Certificate rawData

时间:2018-01-20 13:18:17

标签: .net x509certificate x509certificate2

我正在使用X509Certificate(.pfx文件)来获取jwt令牌。 X509Certificate2中有一个名为RawData的参数。我知道这肯定包含publicKey以及有关证书的一些其他元数据信息。

我想知道这个rawData参数是否包含任何其他关键信息,例如PrivateKey。我无法找到解释这些参数的文档。我是否可以获得有关此参数的更多文档,它包含的内容以及是否可以安全共享。

2 个答案:

答案 0 :(得分:1)

使用this构造函数从X509Cetificate的RawData创建了一个X509Certificate。创建的新证书将HasPrivateKey设置为false,将PrivateKey设置为null。

答案 1 :(得分:1)

让我们说X509Certificate certInstance是一个包含所有好东西的Pfx证书的实例。

导出证书时,它取决于内容类型。您可以从该原始数据重建证书。例如, 在C#中如果我使用:

certInstance.Export(X509ContentType.Pfx);

私钥和公钥将在原始数据中。 但是如果您导出为cert或其他值,它可以更改。 如果导出为:

certInstance.Export(X509ContentType.Cert);

它将删除敏感信息的证书,例如私钥。但是,如果您使用相同的原始数据并尝试转换回pfx,则私钥数据将为null。

如果您想更改证书的内容类型,可以按照以下方式执行操作。

byte[] certificateAsBytes = certInstance.Export(X509ContentType.Cert);
X509Certificate2 myNewCert = new X509Certificate2(certificateAsBytes);

以下是指向不同内容类型的链接:

X509ContentTypes