public async Task TestTooManyBindings() { //delete test if it exists if (await iisManager.SiteExists("ManyBindings")) { await iisManager.DeleteSite("ManyBindings"); } try { // create net.msmq://localhost binding, no port or ip await iisManager.CreateSite("ManyBindings", "toomany.com", PrimaryIISRoot, null, protocol : "http"); var site = await iisManager.GetSiteBindingByDomain("toomany.com"); var domains = new List <string>(); for (var i = 0; i < 101; i++) { domains.Add(Guid.NewGuid().ToString() + ".toomany.com"); } await iisManager.AddSiteBindings(site.SiteId, domains); } finally { await iisManager.DeleteSite("ManyBindings"); } }
public void TestTooManyBindings() { //delete test if it exists if (iisManager.SiteExists("ManyBindings")) { iisManager.DeleteSite("ManyBindings"); } // create net.msmq://localhost binding, no port or ip iisManager.CreateSite("ManyBindings", "toomany.com", PrimaryIISRoot, null, protocol: "http"); var site = iisManager.GetSiteBindingByDomain("toomany.com"); List <string> domains = new List <string>(); for (var i = 0; i < 10000; i++) { domains.Add(Guid.NewGuid().ToString() + ".toomany.com"); } iisManager.AddSiteBindings(site.SiteId, domains); }
public async Task TestChallengeRequestHttp01BazillionDomains() { // attempt to request a cert for many domains var siteName = "TestBazillionDomains"; var numDomains = 100; var domainList = new List <string>(); for (var i = 0; i < numDomains; i++) { var testStr = Guid.NewGuid().ToString().Substring(0, 6); domainList.Add($"bazillion-1-{i}." + PrimaryTestDomain); } if (await iisManager.SiteExists(siteName)) { await iisManager.DeleteSite(siteName); } var site = await iisManager.CreateSite(siteName, domainList[0], testSitePath, "DefaultAppPool", port : testSiteHttpPort); try { // add bindings await iisManager.AddSiteBindings(site.Id.ToString(), domainList, testSiteHttpPort); var dummyManagedCertificate = new ManagedCertificate { Id = Guid.NewGuid().ToString(), Name = testSiteName, GroupId = site.Id.ToString(), RequestConfig = new CertRequestConfig { PrimaryDomain = domainList[0], SubjectAlternativeNames = domainList.ToArray(), Challenges = new ObservableCollection <CertRequestChallengeConfig>( new List <CertRequestChallengeConfig> { new CertRequestChallengeConfig { ChallengeType = "http-01" } }), PerformAutoConfig = true, PerformAutomatedCertBinding = true, PerformChallengeFileCopy = true, PerformExtensionlessConfigChecks = false, WebsiteRootPath = testSitePath }, ItemType = ManagedCertificateType.SSL_LetsEncrypt_LocalIIS, }; //ensure cert request was successful var result = await certifyManager.PerformCertificateRequest(_log, dummyManagedCertificate); // check details of cert, subject alternative name should include domain and expiry // must be greater than 89 days in the future Assert.IsTrue(result.IsSuccess, $"Certificate Request Not Completed: {result.Message}"); } finally { await iisManager.DeleteSite(siteName); } }