如何创建 ISignatureFactory 来创建自签名证书

问题描述 投票:0回答:1

我正在尝试使用c#生成一个

X509Certificate2

我遇到了这个答案,这就是我正在寻找的。但是,该代码使用的是绝对方法。

方法

SetSignatureAlgorithm
有以下警告

如果Generate与ISignatureFactory一起使用则不需要

此外,代码

certificateGenerator.Generate(issuerPrivateKey, random)
有以下消息

使用带有 ISignatureFactory 的生成

如何创建

ISignatureFactory
来修复这两个警告?

c# x509certificate x509 x509certificate2 self-signed-certificate
1个回答
0
投票

这对你有用吗?此方法动态生成私钥,使用自签名证书对其进行签名,并将证书和密钥作为 PKCS#12 捆绑包返回(如果需要,可以保存在 .pfx 文件中)。

public static X509Certificate2 CreateX509CryptCertificate(string name, int keyLength = 2048, int yearsValid = 3) {
    X509KeyStorageFlags storageFlags = X509KeyStorageFlags.PersistKeySet | 
                                       X509KeyStorageFlags.Exportable;
    using var rsa = RSA.Create(keyLength);
    var request = new CertificateRequest($"CN={name}", rsa, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
    using X509Certificate2 ephemeral = request.CreateSelfSigned(DateTime.Now, DateTime.Now.AddYears(yearsValid));
    return new X509Certificate2(ephemeral.Export(X509ContentType.Pkcs12), string.Empty, storageFlags);
}
© www.soinside.com 2019 - 2024. All rights reserved.