首页 > 解决方案 > 我们如何使用 x509certificates 加载证书签名请求?

问题描述

我的问题:

从证书签名请求如下:

例子:

-----BEGIN CERTIFICATE REQUEST-----
MIIClDCCAXwCAQAwTzELMAkGA1UEBhMCVk4xEDAOBgNVBAMMB2RldmljZTMxCjAI ...
-----BEGIN CERTIFICATE REQUEST-----

我正在使用system.security.cryptography.x509certificates,我会将其加载为CertificateRequest/X509Certificate2对象,以从证书签名请求创建新证书。

有谁知道怎么做?

我的尝试

输入:

我的代码

string rootCA = ""; // root certificate
string scrString = ""; // certificate signing request
byte[] rootRawData = Convert.FromBase64String(rootCA);
X509Certificate2 rootCert = new X509Certificate2(rootRawData);

var generator = X509SignatureGenerator.CreateForRSA(rootCert.GetRSAPrivateKey(), RSASignaturePadding.Pkcs1);

byte[] scrRawData = Convert.FromBase64String(scrString);
X509Certificate2 scrDeviceCert = new X509Certificate2(scrRawData); ------> ERROR: : 'Cannot find the requested object.'
CertificateRequest scrDeviceReq = new CertificateRequest(scrDeviceCert.IssuerName, scrDeviceCert.PublicKey, HashAlgorithmName.SHA256);

var deviceCert = scrDeviceReq.Create(rootCert.IssuerName, generator, DateTimeOffset.UtcNow.AddDays(1), DateTimeOffset.UtcNow.AddDays(6), new byte[] { 1, 2, 3, 4 });

标签: ssl.net-corecertificatex509certificate2csr

解决方案


.NET Core 中没有读取 CSR 的内置功能。您必须使用 3rd 方库来解码 CSR。


推荐阅读