/// <summary>
 /// Returns a <see cref="CertificateManager"/> configured to use HTTP Challenge, placing the challenge file on Azure Web App
 /// using Kudu, and assigning the obtained certificate directly to the web app service.
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="acmeConfig"></param>
 /// <param name="certSettings"></param>
 /// <param name="authProviderConfig"></param>
 /// <returns></returns>
 public static CertificateManager CreateKuduWebAppCertificateManager(IAzureWebAppEnvironment settings, IAcmeConfig acmeConfig, IWebAppCertificateSettings certSettings, IAuthorizationChallengeProviderConfig authProviderConfig)
 {
     return(new CertificateManager(settings, acmeConfig, new WebAppCertificateService(settings, certSettings), new KuduFileSystemAuthorizationChallengeProvider(settings, authProviderConfig)));
 }
 /// <summary>
 /// Returns a <see cref="CertificateManager"/> configured to use DNS Challenge, placing the challenge record in Azure DNS,
 /// and assigning the obtained certificate directly to the web app service.
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="acmeConfig"></param>
 /// <param name="certSettings"></param>
 /// <param name="dnsEnvironment"></param>
 /// <returns></returns>
 public static CertificateManager CreateAzureDnsWebAppCertificateManager(IAzureWebAppEnvironment settings, IAcmeConfig acmeConfig, IWebAppCertificateSettings certSettings, IAzureDnsEnvironment dnsEnvironment)
 {
     return(new CertificateManager(settings, acmeConfig, new WebAppCertificateService(settings, certSettings), new AzureDnsAuthorizationChallengeProvider(dnsEnvironment)));
 }
 /// <summary>
 /// Returns a <see cref="CertificateManager"/> configured to use HTTP Challenge, placing the challenge file on Azure Blob Storage,
 /// and assigning the obtained certificate directly to the web app service.
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="acmeConfig"></param>
 /// <param name="certSettings"></param>
 /// <returns></returns>
 public static CertificateManager CreateBlobWebAppCertificateManager(IAzureWebAppEnvironment settings, IAcmeConfig acmeConfig, IWebAppCertificateSettings certSettings)
 {
     return(new CertificateManager(settings, acmeConfig, new WebAppCertificateService(settings, certSettings), NewBlobStorageAuthorizationChallengeProvider()));
 }
 public WebAppCertificateService(IAzureWebAppEnvironment azureEnvironment, IWebAppCertificateSettings settings)
 {
     this.azureEnvironment = azureEnvironment;
     this.settings         = settings;
 }