首頁 >後端開發 >C++ >如何使用C#產生自簽名憑證?

如何使用C#產生自簽名憑證?

DDD
DDD原創
2025-01-13 07:35:42839瀏覽

How Can I Generate a Self-Signed Certificate Using C#?

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

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