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));
 }
Exemplo n.º 2
0
 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));
 }
Exemplo n.º 3
0
 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));
 }