private void GenerateSiteCertificate(CertificateGenerator certificateGenerator, string certificatePath, string host, string password) { var keyPair = _caKeyPair; IDictionary certificateDetails = new Hashtable(); certificateDetails[X509Name.CN] = host; IList certificateDetailsOrder = new ArrayList(); certificateDetailsOrder.Add(X509Name.CN); var certificate = certificateGenerator.GenerateCertificateSignedWithCaCertificate(_caKeyPair, _caCertificate, keyPair, certificateDetails, certificateDetailsOrder); var certificateData = certificateGenerator.ExportPfxCertificateWithPrivateKey(certificate, keyPair, password); var certificateFileName = Path.Combine(certificatePath, host + ".pfx"); File.WriteAllBytes(certificateFileName, certificateData); Logger.InfoFormat("Create certificate for host: {0}", host); }
public void GenerateCertificateSignedWithCaCertificate_SignedWithCaCertificate_ValidCertificate() { // Arrange var certificateGenerator = new CertificateGenerator(); var caKeyPair = certificateGenerator.GetKeyPair(); const string caSubjectName = "Test CA"; IDictionary caCertificateDetails = new Hashtable(); caCertificateDetails[X509Name.CN] = caSubjectName; IList caCertificateDetailsOrder = new ArrayList(); caCertificateDetailsOrder.Add(X509Name.CN); var caCertificate = certificateGenerator.GenerateCaCertificate(caKeyPair, caCertificateDetails, caCertificateDetailsOrder); var keyPair = certificateGenerator.GetKeyPair(); const string subjectName = "www.google.com"; IDictionary certificateDetails = new Hashtable(); certificateDetails[X509Name.CN] = subjectName; IList certificateDetailsOrder = new ArrayList(); certificateDetailsOrder.Add(X509Name.CN); // Act var certificate = certificateGenerator.GenerateCertificateSignedWithCaCertificate(caKeyPair, caCertificate, keyPair, certificateDetails, certificateDetailsOrder); // Assert Assert.AreEqual("CN=" + caSubjectName, certificate.IssuerDN.ToString()); //Signed with CA }