X509Certificate2.CreateFromPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>) Метод

Определение

Создает новый сертификат X.509 на основе содержимого сертификата RFC 7468 в кодировке PEM и закрытый ключ.Creates a new X509 certificate from the contents of an RFC 7468 PEM-encoded certificate and private key.

public:
 static System::Security::Cryptography::X509Certificates::X509Certificate2 ^ CreateFromPem(ReadOnlySpan<char> certPem, ReadOnlySpan<char> keyPem);
public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromPem (ReadOnlySpan<char> certPem, ReadOnlySpan<char> keyPem);
static member CreateFromPem : ReadOnlySpan<char> * ReadOnlySpan<char> -> System.Security.Cryptography.X509Certificates.X509Certificate2
Public Shared Function CreateFromPem (certPem As ReadOnlySpan(Of Char), keyPem As ReadOnlySpan(Of Char)) As X509Certificate2

Параметры

certPem
ReadOnlySpan<Char>

Текст сертификата X.509 в кодировке PEM.The text of the PEM-encoded X509 certificate.

keyPem
ReadOnlySpan<Char>

Текст закрытого ключа в кодировке PEM.The text of the PEM-encoded private key.

Возвращаемое значение

X509Certificate2

Новый сертификат с закрытым ключом.A new certificate with the private key.

Исключения

Содержимое certPem не содержит сертификат в кодировке PEM или имеет неправильный формат.The contents of certPem do not contain a PEM-encoded certificate, or it is malformed.

- или --or-

Содержимое keyPem не содержит закрытый ключ в кодировке PEM или имеет неправильный формат.The contents of keyPem do not contain a PEM-encoded private key, or it is malformed.

- или --or-

Содержимое keyPem содержит ключ, который не соответствует открытому ключу в сертификате.The contents of keyPem contains a key that does not match the public key in the certificate.

- или --or-

Сертификат использует неизвестный алгоритм открытого ключа.The certificate uses an unknown public key algorithm.

Комментарии

Субжектпубликкэйинфо из сертификата определяет, какие метки PEM принимаются для закрытого ключа.The SubjectPublicKeyInfo from the certificate determines what PEM labels are accepted for the private key. Для сертификатов RSA допустимые метки PEM закрытого ключа: "закрытый ключ RSA" и "закрытый ключ".For RSA certificates, accepted private key PEM labels are "RSA PRIVATE KEY" and "PRIVATE KEY". Для сертификатов ECDSA допустимые метки PEM закрытого ключа: "EC закрытый ключ" и "закрытый ключ".For ECDSA certificates, accepted private key PEM labels are "EC PRIVATE KEY" and "PRIVATE KEY". Для сертификатов DSA принятая метка PEM закрытого ключа — "закрытый ключ".For DSA certificates, the accepted private key PEM label is "PRIVATE KEY".

Элементы в кодировке PEM с разными метками игнорируются.PEM-encoded items that have a different label are ignored.

Если сертификат в кодировке PEM и закрытый ключ находятся в одном и том же тексте, используйте одну и ту же строку для certPem и keyPem , например CreateFromPem(combinedCertAndKey, combinedCertAndKey); .If the PEM-encoded certificate and private key are in the same text, use the same string for both certPem and keyPem, for example, CreateFromPem(combinedCertAndKey, combinedCertAndKey);. Объединенные сертификаты и ключи в кодировке PEM не нуждаются в определенном порядке.Combined PEM-encoded certificates and keys do not require a specific order. Для сертификата загружается первый сертификат с меткой сертификата.For the certificate, the the first certificate with a CERTIFICATE label is loaded. Для закрытого ключа загружается первый закрытый ключ с допустимой меткой.For the private key, the first private key with an acceptable label is loaded. Более сложные сценарии для загрузки сертификатов и закрытых ключей могут использовать PemEncoding для перечисления значений в кодировке PEM и применения любых пользовательских функций загрузки.More advanced scenarios for loading certificates and private keys can leverage PemEncoding to enumerate PEM-encoded values and apply any custom loading behavior.

Для защищенных паролем ключей в кодировке PEM используйте CreateFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) для указания пароля.For password protected PEM-encoded keys, use CreateFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) to specify a password.

Применяется к