public ActionResult Install(RequestAndInstallModel model) { if (ModelState.IsValid) { var s = SettingsStore.Instance.Load(); s.Add(new LetsEncrypt.SiteExtension.Models.SettingEntry() { Name = "email", Value = model.Email }); var baseUri = model.UseStaging == false ? "https://acme-v01.api.letsencrypt.org/" : "https://acme-staging.api.letsencrypt.org/"; s.Add(new LetsEncrypt.SiteExtension.Models.SettingEntry() { Name = "baseUri", Value = baseUri }); SettingsStore.Instance.Save(s); var settings = new AppSettingsAuthConfig(); var target = new Target() { ClientId = settings.ClientId, ClientSecret = settings.ClientSecret, Email = model.Email, Host = model.Hostnames.First(), WebAppName = settings.WebAppName, SiteSlotName = settings.SiteSlotName, ResourceGroupName = settings.ResourceGroupName, SubscriptionId = settings.SubscriptionId, Tenant = settings.Tenant, BaseUri = baseUri, ServicePlanResourceGroupName = settings.ServicePlanResourceGroupName, AlternativeNames = model.Hostnames.Skip(1).ToList(), UseIPBasedSSL = settings.UseIPBasedSSL }; var thumbprint = CertificateManager.RequestAndInstallInternal(target); if (thumbprint != null) { return(RedirectToAction("Hostname", new { id = thumbprint })); } } SetViewBagHostnames(); return(View(model)); }
public async Task <ActionResult> Install(RequestAndInstallModel model) { if (ModelState.IsValid) { var s = SettingsStore.Instance.Load(); s.Clear(); s.Add(new SettingEntry() { Name = "email", Value = model.Email }); var baseUri = model.UseStaging == false ? "https://acme-v01.api.letsencrypt.org/" : "https://acme-staging.api.letsencrypt.org/"; s.Add(new SettingEntry() { Name = "baseUri", Value = baseUri }); SettingsStore.Instance.Save(s); var settings = new AppSettingsAuthConfig(); var target = new AcmeConfig() { RegistrationEmail = model.Email, Host = model.Hostnames.First(), BaseUri = baseUri, AlternateNames = model.Hostnames.Skip(1).ToList(), PFXPassword = settings.PFXPassword, RSAKeyLength = settings.RSAKeyLength, }; var thumbprint = await new CertificateManager(settings).RequestAndInstallInternalAsync(target); if (thumbprint != null) { return(RedirectToAction("Hostname", new { id = thumbprint })); } } SetViewBagHostnames(); return(View(model)); }
public async Task <ActionResult> Install(RequestAndInstallModel model) { if (ModelState.IsValid) { var s = SettingsStore.Instance.Load(); s.Clear(); s.Add(new SettingEntry() { Name = "email", Value = model.Email }); s.Add(new SettingEntry() { Name = "useStaging", Value = model.UseStaging.ToString() }); SettingsStore.Instance.Save(s); var settings = new AppSettingsAuthConfig(); var target = new AcmeConfig() { RegistrationEmail = model.Email, Host = model.Hostnames.First(), UseProduction = !model.UseStaging, AlternateNames = model.Hostnames.Skip(1).ToList(), PFXPassword = settings.PFXPassword, RSAKeyLength = settings.RSAKeyLength, }; var certModel = await new CertificateManager(settings).RequestAndInstallInternalAsync(target); if (certModel != null) { return(RedirectToAction("Hostname", new { id = certModel.CertificateInfo.Certificate.Thumbprint })); } } SetViewBagHostnames(); return(View(model)); }