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中文網其他相關文章!