Heim >Backend-Entwicklung >C++ >Wie kann ich mit .NET 4.7.2 und höher einfach selbstsignierte Zertifikate in C# erstellen?

Wie kann ich mit .NET 4.7.2 und höher einfach selbstsignierte Zertifikate in C# erstellen?

Barbara Streisand
Barbara StreisandOriginal
2025-01-13 09:10:44288Durchsuche

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

Erstellen Sie ein selbstsigniertes Zertifikat in C#

Das Erstellen eines selbstsignierten Zertifikats in C# ist eine praktische Lösung für die lokale Verschlüsselung und andere Nicht-Kommunikationszwecke. Während normalerweise die P/Invoke-Methode mit Crypt32.dll verwendet wird, untersucht dieser Beitrag eine einfachere Methode unter Verwendung des System.Security.Cryptography.X509Certificates-Namespace (verfügbar in .NET 4.7.2 und höher).

Vermeiden Sie die Verwendung von P/Invoke

Wir können die CertificateRequest-Klasse verwenden, um Zertifikate zu erstellen, anstatt uns auf P/Invoke zu verlassen. Dieser Ansatz vereinfacht den Prozess, reduziert den Bedarf an komplexen Parametern und sorgt für eine einfachere Lösung.

Zertifikat erstellen

Um ein selbstsigniertes Zertifikat zu erstellen, befolgen Sie diese Schritte:

  1. Verwenden Sie ECDsa.Create(), um ein asymmetrisches Schlüsselpaar zu generieren.
  2. Verwenden Sie das CertificateRequest-Objekt, um die Anforderung mit dem erforderlichen allgemeinen Namen (CN), Schlüsselpaar und Hash-Algorithmus zu initialisieren.
  3. Rufen Sie CreateSelfSigned auf, um ein Zertifikat mit einer angegebenen Gültigkeitsdauer zu generieren.

Exportzertifikat

Sobald das Zertifikat generiert ist, kann es in verschiedene Formate exportiert werden:

  • PFX (PKCS #12): Enthält öffentliche und private Schlüssel.

    <code class="language-csharp">  File.WriteAllBytes("c:\temp\mycert.pfx", cert.Export(X509ContentType.Pfx, "P@55w0rd"));</code>
  • CER (nur öffentlicher Schlüssel): Base64-codiertes Zertifikat, das den privaten Schlüssel nicht enthält.

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

Das obige ist der detaillierte Inhalt vonWie kann ich mit .NET 4.7.2 und höher einfach selbstsignierte Zertifikate in C# erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn