C# 自签名证书生成指南
生成自签名证书有多种方法,但一种易于在C#中实现的方法是利用System.Security.Cryptography.X509Certificates.CertificateRequest类,该类在.NET Framework 4.7.2及更高版本中可用。自签名证书可用于本地加密,无需保护通信安全。
代码实现:
以下示例代码演示了如何使用上述类生成自签名证书:
<code class="language-csharp">using System; using System.IO; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; public class CertificateUtil { public static void GenerateCertificate() { // 生成非对称密钥对 var ecdsa = ECDsa.Create(); // 使用指定的主题和密钥创建证书请求 var req = new CertificateRequest("cn=foobar", ecdsa, HashAlgorithmName.SHA256); // 生成自签名证书,设置有效期 var cert = req.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(5)); // 以PFX格式导出证书(包含私钥) File.WriteAllBytes("c:\temp\mycert.pfx", cert.Export(X509ContentType.Pfx, "P@55w0rd")); // 以Base64编码的CER格式导出证书(仅包含公钥) File.WriteAllText("c:\temp\mycert.cer", "-----BEGIN CERTIFICATE-----\r\n" + Convert.ToBase64String(cert.Export(X509ContentType.Cert), Base64FormattingOptions.InsertLineBreaks) + "\r\n-----END CERTIFICATE-----"); } }</code>
这段代码使用椭圆曲线数字签名算法 (ECDSA) 和 SHA-256 哈希算法生成名为“foobar”的自签名证书。证书有效期为五年,并且可以导出为 PFX (PKCS #12) 格式(包含私钥)和 CER (Base64 编码) 格式(仅包含公钥)。
以上是如何使用C#生成自签名证书?的详细内容。更多信息请关注PHP中文网其他相关文章!