Guide de génération de certificats auto-signés C#
Il existe de nombreuses façons de générer un certificat auto-signé, mais une facile à implémenter en C# consiste à utiliser la classe System.Security.Cryptography.X509Certificates.CertificateRequest, disponible dans .NET Framework. 4.7.2 Disponible dans les versions ultérieures. Les certificats auto-signés peuvent être utilisés pour le chiffrement local sans qu'il soit nécessaire de sécuriser les communications.
Mise en œuvre du code :
L'exemple de code suivant montre comment générer un certificat auto-signé à l'aide de la classe ci-dessus :
<code class="language-csharp">using System; using System.IO; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; public class CertificateUtil { public static void GenerateCertificate() { // 生成非对称密钥对 var ecdsa = ECDsa.Create(); // 使用指定的主题和密钥创建证书请求 var req = new CertificateRequest("cn=foobar", ecdsa, HashAlgorithmName.SHA256); // 生成自签名证书,设置有效期 var cert = req.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(5)); // 以PFX格式导出证书(包含私钥) 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>
Ce code génère un certificat auto-signé nommé « foobar » en utilisant l'algorithme de signature numérique à courbe elliptique (ECDSA) et l'algorithme de hachage SHA-256. Les certificats sont valables cinq ans et peuvent être exportés au format PFX (PKCS #12) (contient la clé privée) et CER (codé en Base64) (contient uniquement la clé publique).
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!