> 백엔드 개발 > C++ > P/Invoke 없이 C#에서 자체 서명된 인증서를 쉽게 만드는 방법은 무엇입니까?

P/Invoke 없이 C#에서 자체 서명된 인증서를 쉽게 만드는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-13 08:36:42
원래의
145명이 탐색했습니다.

How to Easily Create Self-Signed Certificates in C# Without P/Invoke?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿