private static X509Certificate2 LoadFromStoreCert(CertificateConfig certInfo) { var subject = certInfo.Subject; var storeName = certInfo.Store; var location = certInfo.Location; var storeLocation = StoreLocation.CurrentUser; if (!string.IsNullOrEmpty(location)) { storeLocation = (StoreLocation)Enum.Parse(typeof(StoreLocation), location, ignoreCase: true); } var allowInvalid = certInfo.AllowInvalid ?? false; return(CertificateLoader.LoadFromStoreCert(subject, storeName, storeLocation, allowInvalid)); }
private X509Certificate2 LoadCertificate(CertificateConfig certInfo, string endpointName) { if (certInfo.IsFileCert && certInfo.IsStoreCert) { throw new InvalidOperationException(ReplicaCoreStrings.FormatMultipleCertificateSources(endpointName)); } else if (certInfo.IsFileCert) { var env = Options.ApplicationServices.GetRequiredService <IHostingEnvironment>(); return(new X509Certificate2(Path.Combine(env.ContentRootPath, certInfo.Path), certInfo.Password)); } else if (certInfo.IsStoreCert) { return(LoadFromStoreCert(certInfo)); } return(null); }