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

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

Mary-Kate Olsen
リリース: 2025-01-13 10:03:43
オリジナル
611 人が閲覧しました

How to Create Self-Signed Certificates in C#?

C# を使用して自己署名証明書を作成する

C# では、System.Security.Cryptography.X509Certificates.CertificateRequest クラスを使用して自己署名証明書を簡単に生成できます。この方法は、ローカル暗号化の目的に適した証明書を作成するための簡単でプラットフォーム固有の方法を提供します。

証明書作成プロセスでは、まず、非対称キー ペアを表す ECDsa オブジェクトをインスタンス化します。次に、申請者名、鍵アルゴリズム、ハッシュ アルゴリズムなどの必要な証明書情報を含む CertificateRequest インスタンスを作成します。

最後のステップでは、CreateSelfSigned メソッドを呼び出して自己署名証明書を作成します。このメソッドは、証明書に開始日と終了日を設定し、有効な X.509 証明書を生成します。

秘密キーを PFX 証明書 (PKCS #12) に保存するには、Export(X509ContentType.Pfx, "密码") を使用して証明書をエクスポートします。これにより、秘密キーをパスワードで保護できます。

さらに、Export(X509ContentType.Cert) を使用して証明書をエクスポートすると、公開キーのみを含む Base64 でエンコードされた CER ファイルを作成できます。これは、証明書をパブリックに共有する場合、または他のアプリケーションの公開キーを再利用する場合に便利です。

次のコード例は、プロセス全体を示しています。

<code class="language-csharp">using System;
using System.IO;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

public class CertificateUtil
{
    public 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>
ログイン後にコピー

この例では、PFX 形式で保存された秘密キーと Base64 でエンコードされた CER 形式で保存された公開キーを使用して自己署名証明書を生成します。これらの証明書は、Windows 証明書ストアにインポートしたり、ローカル アプリケーションでのデータの暗号化または復号化に使用したりできます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート