# easySSL **Repository Path**: josr/easySSL ## Basic Information - **Project Name**: easySSL - **Description**: No description available - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-05-08 - **Last Updated**: 2021-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Generate SSL certificates with ease ## Generating ROOT CA certificate ```c# private static X509Certificate GenerateCaCertificate() { var cert = new X509Certificate { Tbs = { SignatureAlgorithm = X509AlgorithmIdentifier.Sha256Rsa, Validity = new X509Validity { NotBefore = DateTimeOffset.UtcNow, NotAfter = DateTimeOffset.UtcNow.AddDays(5) }, Subject = new X509Name { CommonName = "Sergey CA", Organization = "My Ca" } } } .GenerateRsaKey() .GenerateSerialNumber() .SetIssuerSelf() .SetBasicConstraint(new BasicConstraintData { Authority = true, PathLengthConstraint = 3 }) .SignSelf(); return cert; } ``` ## Generating end certificate signed with CA certificate ```c# private static X509Certificate GenerateEndCertificate(X509Certificate ca) { var cert = new X509Certificate { Tbs = { SignatureAlgorithm = X509AlgorithmIdentifier.Sha256Rsa, Validity = new X509Validity { NotBefore = DateTimeOffset.UtcNow, NotAfter = DateTimeOffset.UtcNow.AddDays(5) }, Subject = new X509Name { CommonName = "test.vcap.me", Organization = "Home" } } } .SetIssuer(ca) .GenerateRsaKey() .GenerateSerialNumber() .AddSubjectAltNames("test2.vcap.me") .SignWith(ca); return cert; } ``` ## Generating self-signed certificate ```c# private static X509Certificate GenerateSelfSignedCertificate(X509Certificate ca) { var cert = new X509Certificate { Tbs = { SignatureAlgorithm = X509AlgorithmIdentifier.Sha256Rsa, Validity = new X509Validity { NotBefore = DateTimeOffset.UtcNow, NotAfter = DateTimeOffset.UtcNow.AddDays(5) }, Subject = new X509Name { CommonName = "test.vcap.me", Organization = "Home" } } } .SetIssuer(ca) .GenerateRsaKey() .GenerateSerialNumber() .AddSubjectAltNames("test2.vcap.me") .SignSelf(ca); return cert; } ``` ## Export certificate ```c# new X509Certificate { Tbs = { SignatureAlgorithm = X509AlgorithmIdentifier.Sha256Rsa, Validity = new X509Validity { NotBefore = DateTimeOffset.UtcNow, NotAfter = DateTimeOffset.UtcNow.AddDays(5) }, Subject = new X509Name { CommonName = "test.vcap.me", Organization = "Home" } } } .SetIssuer(ca) .GenerateRsaKey() .GenerateSerialNumber() .SignSelf() .Export(filePath, true); ```