Maison > développement back-end > C++ > Comment puis-je créer facilement des certificats auto-signés en C# à l'aide de .NET 4.7.2 et supérieur ?

Comment puis-je créer facilement des certificats auto-signés en C# à l'aide de .NET 4.7.2 et supérieur ?

Barbara Streisand
Libérer: 2025-01-13 09:10:44
original
242 Les gens l'ont consulté

How Can I Easily Create Self-Signed Certificates in C# Using .NET 4.7.2 and Above?

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

La création d'un certificat auto-signé en C# est une solution pratique pour le chiffrement local et à d'autres fins non liées à la communication. Bien que la méthode P/Invoke impliquant Crypt32.dll soit généralement utilisée, cet article explore une méthode plus simple utilisant l'espace de noms System.Security.Cryptography.X509Certificates (disponible dans .NET 4.7.2 et versions ultérieures).

Évitez d'utiliser P/Invoke

Nous pouvons utiliser la classe CertificateRequest pour créer des certificats au lieu de nous fier à P/Invoke. Cette approche simplifie le processus, réduit le besoin de paramètres complexes et garantit une solution plus simple.

Générer un certificat

Pour créer un certificat auto-signé, suivez ces étapes :

  1. Utilisez ECDsa.Create() pour générer une paire de clés asymétriques.
  2. Utilisez l'objet CertificateRequest pour initialiser la demande à l'aide du nom commun (CN), de la paire de clés et de l'algorithme de hachage requis.
  3. Appelez CreateSelfSigned pour générer un certificat avec une période de validité spécifiée.

Certificat d'exportation

Une fois le certificat généré, il peut être exporté vers différents formats :

  • PFX (PKCS #12) : Contient les clés publiques et privées.

    <code class="language-csharp">  File.WriteAllBytes("c:\temp\mycert.pfx", cert.Export(X509ContentType.Pfx, "P@55w0rd"));</code>
    Copier après la connexion
  • CER (clé publique uniquement) : Certificat encodé en base64 qui ne contient pas la clé privée.

    <code class="language-csharp">  File.WriteAllText("c:\temp\mycert.cer", Convert.ToBase64String(cert.Export(X509ContentType.Cert), Base64FormattingOptions.InsertLineBreaks) + "\r\n-----END CERTIFICATE-----");</code>
    Copier après la connexion

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