【发布时间】:2020-07-24 16:40:18
【问题描述】:
我正在测试我的软件,并使用此功能在启动时(在内存中)生成随机证书:
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography;
public X509Certificate CreateX509Certificate2(string certName = "Default cert")
{
var ecdsa = ECDsa.Create();
var rsa = RSA.Create();
var req = new CertificateRequest($"cn={certName}", rsa, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
var cert = req.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(1));
return new X509Certificate2(cert.Export(X509ContentType.Pfx, "password"), "password");
}
这种方法有什么缺点吗?证书“真实”是否足以用于测试目的?
我发现的几乎所有示例都使用了 BouncyCastle 等第三方库,但我看不出使用它的目的?
(我知道有效的证书是由受信任的 CA 签署的,但我会在软件处于测试阶段时进行这项工作)
【问题讨论】:
标签: c# .net-core x509certificate2