Share via


X509Certificate2.CreateFromPemFile(String, String) 方法

定义

用 RFC 7468 PEM 编码的证书的文件内容和私钥创建新的 X509 证书。

public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromPemFile (string certPemFilePath, string? keyPemFilePath = default);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromPemFile (string certPemFilePath, string? keyPemFilePath = default);
static member CreateFromPemFile : string * string -> System.Security.Cryptography.X509Certificates.X509Certificate2
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member CreateFromPemFile : string * string -> System.Security.Cryptography.X509Certificates.X509Certificate2
Public Shared Function CreateFromPemFile (certPemFilePath As String, Optional keyPemFilePath As String = Nothing) As X509Certificate2

参数

certPemFilePath
String

PEM 编码的 X509 证书的路径。

keyPemFilePath
String

如已指定,则为 PEM 编码的私钥的路径。 如果未指定,则将使用 certPemFilePath 文件来加载私钥。

返回

带私钥的新证书。

属性

例外

certPemFilePath 的文件路径的内容不包含 PEM 编码的证书,或者格式不正确。

keyPemFilePath 文件路径的内容不包含 PEM 编码的私钥,或者格式不正确。

keyPemFilePath 的文件路径的内容所包含的密钥与证书中的公钥不匹配。

证书使用未知公钥算法。

certPemFilePathnull

注解

有关可引发的异常的其他文档,请参阅 ReadAllText(String)

证书中的 SubjectPublicKeyInfo 确定私钥接受的 PEM 标签。 对于 RSA 证书,接受的私钥 PEM 标签为“RSA 私钥”和“私钥”。 对于 ECDSA 证书,接受的私钥 PEM 标签为“EC 私钥”和“私钥”。 对于 DSA 证书,接受的私钥 PEM 标签为“私钥”。

将忽略具有不同标签的 PEM 编码项。

PEM 编码的组合证书和密钥不需要特定顺序。 对于证书,将加载带有 CERTIFICATE 标签的第一个证书。 对于私钥,将加载具有可接受的标签的第一个私钥。 加载证书和私钥的更高级方案可以利用 PemEncoding 枚举 PEM 编码的值并应用任何自定义加载行为。

对于受密码保护的 PEM 编码密钥,请使用 CreateFromEncryptedPemFile(String, ReadOnlySpan<Char>, String) 指定密码。

适用于