我正在使用 X509证书(.pfx 文件(作为 jwt 令牌。X509Certificate2 中有一个参数称为 RawData。我知道这肯定包含公钥以及有关证书的其他一些元数据信息。
我想知道这个 rawData 参数是否包含任何其他关键信息,例如私钥。我找不到太多解释这些参数的文档。我能否获得有关此参数、它包含的内容以及是否可以安全共享的更多文档。
> 使用此构造函数从具有私钥的 X509Cetificate 的 RawData 制作了一个 X509 证书。创建的新证书将 HasPrivateKey 作为 false,将 PrivateKey 值作为 null。
假设X509Certificate certInstance
是具有所有好处的Pfx证书的实例。
这取决于导出证书时的内容类型。您可以从该原始数据重新生成证书。例如在 C# 中,如果我使用:
certInstance.Export(X509ContentType.Pfx);
比私钥和公钥将在原始数据中。但是,如果导出为证书或其他值,则可能会更改。如果导出为:
certInstance.Export(X509ContentType.Cert);
它将剥离证书中的敏感信息,例如私钥。但是,如果使用相同的原始数据并尝试转换回 pfx,则私钥数据将为 null。
如果要更改证书的内容类型,可以执行以下操作。
byte[] certificateAsBytes = certInstance.Export(X509ContentType.Cert);
X509Certificate2 myNewCert = new X509Certificate2(certificateAsBytes);
以下是指向可用不同内容类型的链接:
X509内容类型