Entwickler müssen häufig selbstsignierte Zertifikate für verschiedene Zwecke erstellen, beispielsweise für die lokale Verschlüsselung, ohne die Kommunikation zu sichern. In C# kann diese Aufgabe mit der in .NET 4.7.2 eingeführten direkten Methode ausgeführt werden.
Mit der Klasse System.Security.Cryptography.X509Certificates.CertificateRequest
können Sie ganz einfach selbstsignierte Zertifikate erstellen. Der folgende Codeausschnitt zeigt, wie:
<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>
Dieser Code verwendet ECDSa, um ein asymmetrisches Schlüsselpaar zu generieren und ein CertificateRequest
-Objekt zu erstellen. Anschließend wird die Methode CreateSelfSigned
aufgerufen, um ein selbstsigniertes Zertifikat zu generieren. Zertifikate können in eine PFX-Datei exportiert werden, die den privaten Schlüssel enthält, oder in eine Base64-codierte CER-Datei, die nur den öffentlichen Schlüssel enthält.
Mit diesem vereinfachten Ansatz können Entwickler die Komplexität von P/Invoke vermeiden und bequem selbstsignierte Zertifikate in C# erstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich einfach selbstsignierte Zertifikate in C# generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!