首頁 >後端開發 >C++ >如何使用 .NET 4.7.2 及更高版本在 C# 中輕鬆建立自簽名憑證?

如何使用 .NET 4.7.2 及更高版本在 C# 中輕鬆建立自簽名憑證?

Barbara Streisand
Barbara Streisand原創
2025-01-13 09:10:44248瀏覽

How Can I Easily Create Self-Signed Certificates in C# Using .NET 4.7.2 and Above?

在C#中建立自簽名憑證

在C#中建立自簽名憑證是本地加密和其他非通訊目的的便捷解決方案。雖然通常使用涉及Crypt32.dll的P/Invoke方法,但這篇文章探討了使用System.Security.Cryptography.X509Certificates命名空間(.NET 4.7.2及更高版本可用)的更簡單方法。

避免使用P/Invoke

我們可以利用CertificateRequest類別來建立證書,而不是依賴P/Invoke。此方法簡化了流程,減少了對複雜參數的需求,並確保了更直接的解決方案。

產生證書

要建立自簽名證書,請依照下列步驟操作:

  1. 使用ECDsa.Create()產生非對稱金鑰對。
  2. 利用CertificateRequest物件使用所需的通用名稱(CN)、金鑰對和雜湊演算法初始化請求。
  3. 呼叫CreateSelfSigned以產生具有指定有效期的憑證。

匯出憑證

產生憑證後,可以將其匯出為各種格式:

  • PFX (PKCS #12): 包含公鑰和私鑰。

    <code class="language-csharp">  File.WriteAllBytes("c:\temp\mycert.pfx", cert.Export(X509ContentType.Pfx, "P@55w0rd"));</code>
  • CER (僅限公鑰): 不包含私鑰的Base64編碼憑證。

    <code class="language-csharp">  File.WriteAllText("c:\temp\mycert.cer", Convert.ToBase64String(cert.Export(X509ContentType.Cert), Base64FormattingOptions.InsertLineBreaks) + "\r\n-----END CERTIFICATE-----");</code>

以上是如何使用 .NET 4.7.2 及更高版本在 C# 中輕鬆建立自簽名憑證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn