Maison >développement back-end >C++ >Comment puis-je générer facilement des certificats auto-signés en C# ?

Comment puis-je générer facilement des certificats auto-signés en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-13 07:13:42564parcourir

How Can I Easily Generate Self-Signed Certificates in C#?

Générez facilement des certificats auto-signés en C#

Les développeurs doivent souvent créer des certificats auto-signés à diverses fins, telles que le cryptage local sans sécuriser les communications. En C#, cette tâche peut être accomplie à l’aide de la méthode directe introduite dans .NET 4.7.2.

En utilisant la classe System.Security.Cryptography.X509Certificates.CertificateRequest, vous pouvez facilement créer des certificats auto-signés. L'extrait de code suivant montre comment :

<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>

Ce code utilise ECDSa pour générer une paire de clés asymétriques et crée un objet CertificateRequest. Par la suite, il appelle la méthode CreateSelfSigned pour générer un certificat auto-signé. Les certificats peuvent être exportés vers un fichier PFX contenant la clé privée ou vers un fichier CER codé en Base64 contenant uniquement la clé publique.

Grâce à cette approche simplifiée, les développeurs peuvent éviter la complexité de P/Invoke et créer facilement des certificats auto-signés en C#.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn