開發人員經常需要為各種目的建立自簽名證書,例如本地加密而無需保護通訊。在C#中,可以使用.NET 4.7.2中引入的直接方法來完成此任務。
使用System.Security.Cryptography.X509Certificates.CertificateRequest
類,您可以輕鬆建立自簽名憑證。以下程式碼片段示範如何操作:
<code class="language-csharp">using System; using System.IO; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; public class CertificateUtil { static void MakeCert() { var ecdsa = ECDsa.Create(); // 生成非对称密钥对 var req = new CertificateRequest("cn=foobar", ecdsa, HashAlgorithmName.SHA256); var cert = req.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(5)); // 创建包含私钥的PFX (PKCS #12) 文件 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產生非對稱金鑰對,並建立一個CertificateRequest
物件。隨後,它呼叫CreateSelfSigned
方法產生自簽名憑證。憑證可以匯出到包含私鑰的PFX檔案或僅包含公鑰的Base64編碼CER檔案。
透過這種簡化的方法,開發人員可以避免P/Invoke的複雜性,並在C#中方便地建立自簽名憑證。
以上是如何用C#輕鬆產生自簽名憑證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!