public async Task <X509Certificate2> GetCertificateForSubjectAsync(string hostname) { //Console.WriteLine($"!!!! CREATING {hostname} cert"); return(await Task.Run(() => X509CertificateFactory.IssueCertificate( $"CN={hostname}", CertificateAuthorityCert, null, new [] { KeyPurposeID.IdKPServerAuth })) .WithoutCapturingContext()); }
static CertificateProvider() { //var rootCA = X509CertificateFactory.CreateCertificateAuthorityCertificate($"CN={RootCA}", null, null); //X509CertificateFactory.SaveCertificateToWindowsStore(rootCA); Default = new CachedCertificateProvider( new StoredCertificateProvider( new BouncyCastleCertificateProvider( X509CertificateFactory.LoadCertificate(RootCA)))); }
public async Task <X509Certificate2> GetCertificateForSubjectAsync(string domain) { var fileName = SanityFileName(domain); if (File.Exists(fileName)) { return(X509CertificateFactory.LoadCertificateFromFile(fileName)); } var x509Certificate = await _provider.GetCertificateForSubjectAsync(domain).WithoutCapturingContext(); x509Certificate.Save(fileName); return(x509Certificate); }