【发布时间】:2021-03-18 01:40:51
【问题描述】:
可以在 X509Certificate2 构造函数中指定 X509KeyStorageFlags,如下所示:
var cert = new X509Certificate2(bytes, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
但在我的情况下,我使用 CertificateRequest 创建自签名证书,因此我没有证书构造函数:
var rsaKeyPair = RSA.Create();
var request = new CertificateRequest(
$"cn = {Environment.MachineName}",
rsaKeyPair,
HashAlgorithmName.SHA256,
RSASignaturePadding.Pkcs);
request.CertificateExtensions.Add(
new X509KeyUsageExtension(X509KeyUsageFlags.KeyEncipherment |
X509KeyUsageFlags.DigitalSignature, true));
var certificate = request.CreateSelfSigned(new DateTimeOffset(DateTime.UtcNow),
new DateTimeOffset(DateTime.UtcNow.AddYears(2)));
有没有办法将 KeyStorageFags 添加到 request.CertificateExtension 或类似的东西?
【问题讨论】:
-
有一个构造函数:public X509Certificate2 (byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags)
-
键选项应该传递给键对象:
var rsaKeyPair = RSA.Create();。
标签: c# x509certificate2