C# 자체 서명 인증서 생성 가이드: 종합 분석
다양한 시나리오, 특히 로컬 암호화에서는 자체 서명 인증서를 생성해야 합니다. Crypt32.dll의 P/Invoke 구현을 사용할 수 있지만 이 방법은 복잡하고 지루할 수 있습니다. 이 문서에서는 System.Security.Cryptography.X509Certificates 네임스페이스를 사용하여 P/Invoke가 필요 없는 보다 직접적인 방법을 살펴봅니다.
.NET 4.7.2 이상에서 CertificateRequest 클래스는 자체 서명 인증서를 생성하는 간단한 방법을 제공합니다.
자체 서명 인증서 만들기
다음 코드 조각은 자체 서명 인증서를 생성하는 과정을 보여줍니다.
<code class="language-csharp">using System; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; public class CertificateUtil { public static void CreateSelfSignedCertificate() { // 生成非对称密钥对。 ECDsa ecdsa = ECDsa.Create(); // 创建证书请求。 CertificateRequest request = new CertificateRequest("cn=foobar", ecdsa, HashAlgorithmName.SHA256); // 创建自签名证书。 X509Certificate2 certificate = request.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(5)); // 将证书导出为包含私钥的PFX (PKCS #12) 格式。 byte[] pfxBytes = certificate.Export(X509ContentType.Pfx, "P@55w0rd"); File.WriteAllBytes("mycert.pfx", pfxBytes); // 将证书导出为Base64编码的CER格式(仅包含公钥)。 string cerContents = "-----BEGIN CERTIFICATE-----\r\n" + Convert.ToBase64String(certificate.Export(X509ContentType.Cert), Base64FormattingOptions.InsertLineBreaks) + "\r\n-----END CERTIFICATE-----"; File.WriteAllText("mycert.cer", cerContents); } }</code>
이 방법은 ECDSA(Elliptic Curve Digital Signature Algorithm) 및 SHA-256 해싱을 사용하여 자체 서명 인증서를 생성합니다. 인증서는 5년 동안 유효하며 PFX(PKCS #12) 및 CER 형식으로 내보낼 수 있습니다.
요약
.NET의 System.Security.Cryptography.X509Certificates 네임스페이스는 C#에서 자체 서명 인증서를 생성하기 위한 간단한 메커니즘을 제공합니다. 이 문서에서는 인증서 생성, 내보내기 및 저장 과정을 간략하게 설명하고 로컬 암호화 요구 사항에 맞는 P/Invoke 없는 크로스 플랫폼 솔루션을 제공합니다.
위 내용은 P/Invoke 없이 C#에서 자체 서명된 인증서를 쉽게 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!