ホームページ >バックエンド開発 >C++ >C# を使用して自己署名証明書を生成するにはどうすればよいですか?

C# を使用して自己署名証明書を生成するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-13 07:35:42839ブラウズ

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

C# 自己署名証明書生成ガイド

自己署名証明書を生成するには多くの方法がありますが、C# で簡単に実装できる方法の 1 つは、.NET Framework で使用できる System.Security.Cryptography.X509Certificates.CertificateRequest クラスを利用することです。 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」という名前の自己署名証明書を生成します。証明書は 5 年間有効で、PFX (PKCS #12) 形式 (秘密キーを含む) および CER (Base64 エンコード) 形式 (公開キーのみを含む) でエクスポートできます。

以上がC# を使用して自己署名証明書を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。