>백엔드 개발 >C++ >C#을 사용하여 자체 서명된 인증서를 생성하려면 어떻게 해야 합니까?

C#을 사용하여 자체 서명된 인증서를 생성하려면 어떻게 해야 합니까?

DDD
DDD원래의
2025-01-13 07:35:42892검색

How Can I Generate a Self-Signed Certificate Using C#?

C# 자체 서명 인증서 생성 가이드

자체 서명된 인증서를 생성하는 방법은 여러 가지가 있지만 C#에서 구현하기 쉬운 방법 중 하나는 .NET Framework에서 사용할 수 있는 System.Security.Cryptography.X509Certificates.CertificateRequest 클래스를 활용하는 것입니다. 4.7.2 이상 버전에서 사용 가능합니다. 자체 서명된 인증서는 통신을 보호할 필요 없이 로컬 암호화에 사용될 수 있습니다.

코드 구현:

다음 샘플 코드는 위 클래스를 사용하여 자체 서명된 인증서를 생성하는 방법을 보여줍니다.

<code class="language-csharp">using System;
using System.IO;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

public class CertificateUtil
{
    public static void GenerateCertificate()
    {
        // 生成非对称密钥对
        var ecdsa = ECDsa.Create();

        // 使用指定的主题和密钥创建证书请求
        var req = new CertificateRequest("cn=foobar", ecdsa, HashAlgorithmName.SHA256);

        // 生成自签名证书,设置有效期
        var cert = req.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(5));

        // 以PFX格式导出证书(包含私钥)
        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(타원 곡선 디지털 서명 알고리즘) 및 SHA-256 해싱 알고리즘을 사용하여 "foobar"라는 자체 서명 인증서를 생성합니다. 인증서는 5년 동안 유효하며 PFX(PKCS #12) 형식(개인 키 포함) 및 CER(Base64 인코딩) 형식(공개 키만 포함)으로 내보낼 수 있습니다.

위 내용은 C#을 사용하여 자체 서명된 인증서를 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.