開発者は、通信を保護せずにローカル暗号化を行うなど、さまざまな目的で自己署名証明書を作成する必要があることがよくあります。 C# では、.NET 4.7.2 で導入されたダイレクト メソッドを使用してこのタスクを実行できます。
System.Security.Cryptography.X509Certificates.CertificateRequest
クラスを使用すると、自己署名証明書を簡単に作成できます。次のコード スニペットはその方法を示しています。
<code class="language-csharp">using System; using System.IO; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; public class CertificateUtil { 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>
このコードは ECDSa を使用して非対称キー ペアを生成し、CertificateRequest
オブジェクトを作成します。その後、CreateSelfSigned
メソッドを呼び出して自己署名証明書を生成します。証明書は、秘密キーを含む PFX ファイル、または公開キーのみを含む Base64 でエンコードされた CER ファイルにエクスポートできます。
この簡素化されたアプローチにより、開発者は P/Invoke の複雑さを回避し、C# で自己署名証明書を簡単に作成できます。
以上がC# で自己署名証明書を簡単に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。