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

Comment créer des certificats auto-signés en C# ?

Mary-Kate Olsen
Libérer: 2025-01-13 10:03:43
original
611 Les gens l'ont consulté

How to Create Self-Signed Certificates in C#?

Créer un certificat auto-signé en utilisant C#

En C#, vous pouvez facilement générer un certificat auto-signé à l'aide de la classe System.Security.Cryptography.X509Certificates.CertificateRequest. Cette méthode offre un moyen simple et spécifique à la plate-forme de créer des certificats adaptés à des fins de chiffrement local.

Le processus de création de certificat

instancie d'abord un objet ECDsa, qui représente une paire de clés asymétriques. Créez ensuite une instance CertificateRequest avec les informations de certificat nécessaires, notamment le nom du demandeur, l'algorithme de clé et l'algorithme de hachage.

La dernière étape consiste à créer le certificat auto-signé en appelant la méthode CreateSelfSigned. Cette méthode définit le certificat avec une date de début et de fin et génère un certificat X.509 valide.

Afin de stocker la clé privée dans un certificat PFX (PKCS #12), utilisez Export(X509ContentType.Pfx, "密码") pour exporter le certificat. Cela permet de protéger la clé privée par un mot de passe.

De plus, en exportant le certificat à l'aide de Export(X509ContentType.Cert), vous pouvez créer un fichier CER encodé en Base64 contenant uniquement la clé publique. Ceci est utile si vous souhaitez partager le certificat publiquement ou réutiliser la clé publique d'autres applications.

L'exemple de code suivant illustre l'ensemble du processus :

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

public class CertificateUtil
{
    public 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>
Copier après la connexion

Cet exemple génère un certificat auto-signé avec la clé privée stockée au format PFX et la clé publique stockée au format CER codé en Base64. Ces certificats peuvent être importés dans le magasin de certificats Windows ou utilisés pour le cryptage ou le déchiffrement des données dans les applications locales.

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