Maison > développement back-end > C++ > Comment créer facilement des certificats auto-signés en C# sans P/Invoke ?

Comment créer facilement des certificats auto-signés en C# sans P/Invoke ?

Linda Hamilton
Libérer: 2025-01-13 08:36:42
original
143 Les gens l'ont consulté

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

Guide de création de certificats auto-signés C# : analyse complète

Dans divers scénarios, notamment le chiffrement local, il est nécessaire de créer des certificats auto-signés. Bien qu'il soit possible d'utiliser l'implémentation P/Invoke de Crypt32.dll, cette méthode peut être complexe et fastidieuse. Cet article explore une méthode plus directe, sans P/Invoke, utilisant l'espace de noms System.Security.Cryptography.X509Certificates.

Dans .NET 4.7.2 et versions ultérieures, la classe CertificateRequest fournit une méthode simplifiée de génération de certificats auto-signés.

Créer un certificat auto-signé

L'extrait de code suivant illustre le processus de création d'un certificat auto-signé :

<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>
Copier après la connexion

Cette méthode utilise l'algorithme de signature numérique à courbe elliptique (ECDSA) et le hachage SHA-256 pour générer un certificat auto-signé. Le certificat est valable cinq ans et peut être exporté aux formats PFX (PKCS #12) et CER.

Résumé

L'espace de noms System.Security.Cryptography.X509Certificates dans .NET fournit un mécanisme simple pour créer des certificats auto-signés en C#. Cet article décrit le processus de génération, d'exportation et de stockage des certificats, fournissant ainsi une solution multiplateforme sans P/Invoke pour vos besoins de chiffrement locaux.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal