개발자는 통신을 보호하지 않고 로컬 암호화 등 다양한 목적을 위해 자체 서명된 인증서를 생성해야 하는 경우가 많습니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!