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 サイトの他の関連記事を参照してください。