Exemple #1
0
        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");
            }
        }
Exemple #2
0
        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);
            }
        }