Exemple #1
0
        public async Task TestChallengeRequestHttp01()
        {
            var site = iisManager.GetSiteByDomain(testSiteDomain);

            Assert.AreEqual(site.Name, testSiteName);

            var dummyManagedSite = new ManagedSite
            {
                Id            = Guid.NewGuid().ToString(),
                Name          = testSiteName,
                GroupId       = site.Id.ToString(),
                RequestConfig = new CertRequestConfig
                {
                    PrimaryDomain                    = testSiteDomain,
                    ChallengeType                    = "http-01",
                    PerformAutoConfig                = true,
                    PerformAutomatedCertBinding      = true,
                    PerformChallengeFileCopy         = true,
                    PerformExtensionlessConfigChecks = true,
                    WebsiteRootPath                  = testSitePath
                },
                ItemType = ManagedItemType.SSL_LetsEncrypt_LocalIIS
            };

            var result = await certifyManager.PerformCertificateRequest(dummyManagedSite);

            //ensure cert request was successful
            Assert.IsTrue(result.IsSuccess, "Certificate Request Not Completed");

            //check details of cert, subject alternative name should include domain and expiry must be great than 89 days in the future
            var managedSites = await certifyManager.GetManagedSites();

            var managedSite = managedSites.FirstOrDefault(m => m.Id == dummyManagedSite.Id);

            //emsure we have a new managed site
            Assert.IsNotNull(managedSite);

            //have cert file details
            Assert.IsNotNull(managedSite.CertificatePath);

            var fileExists = System.IO.File.Exists(managedSite.CertificatePath);

            Assert.IsTrue(fileExists);

            //check cert is correct
            var certInfo = CertificateManager.LoadCertificate(managedSite.CertificatePath);

            Assert.IsNotNull(certInfo);

            bool isRecentlyCreated = Math.Abs((DateTime.UtcNow - certInfo.NotBefore).TotalDays) < 2;

            Assert.IsTrue(isRecentlyCreated);

            bool expiresInFuture = (certInfo.NotAfter - DateTime.UtcNow).TotalDays >= 89;

            Assert.IsTrue(expiresInFuture);

            // remove managed site
            await certifyManager.DeleteManagedSite(managedSite.Id);
        }
Exemple #2
0
        public void LoadSettings()
        {
            this.ManagedSites         = new ObservableCollection <ManagedSite>(certifyManager.GetManagedSites());
            this.ImportedManagedSites = new ObservableCollection <ManagedSite>();

            if (!this.ManagedSites.Any())
            {
                //if we have a vault, preview import. //TODO: make this async and only perform after UI has shown
                PreviewImport(sanMergeMode: true);

                //if we have no vault, start a new one

                //if we have no registered contacts in the vault then prompt to register a contact
            }

            /*if (this.ManagedSites.Any())
             * {
             *  //preselect the first managed site
             *  //  this.SelectedItem = this.ManagedSites[0];
             *
             *  //test state
             *  BeginTrackingProgress(new RequestProgressState { CurrentState = RequestState.InProgress, IsStarted = true, Message = "Registering Domain Identifier", ManagedItem = ManagedSites[0] });
             *  BeginTrackingProgress(new RequestProgressState { CurrentState = RequestState.Error, IsStarted = true, Message = "Rate Limited", ManagedItem = ManagedSites[0] });
             * }*/
        }
Exemple #3
0
        public void LoadSettings()
        {
            this.ManagedSites = new ObservableCollection <ManagedSite>(certifyManager.GetManagedSites());

            if (this.ManagedSites.Any())
            {
                //preselect the first managed site
                //  this.SelectedItem = this.ManagedSites[0];
            }
        }
Exemple #4
0
        public void LoadSettings()
        {
            this.ManagedSites         = new ObservableCollection <ManagedSite>(certifyManager.GetManagedSites());
            this.ImportedManagedSites = new ObservableCollection <ManagedSite>();

            /*if (this.ManagedSites.Any())
             * {
             *  //preselect the first managed site
             *  //  this.SelectedItem = this.ManagedSites[0];
             *
             *  //test state
             *  BeginTrackingProgress(new RequestProgressState { CurrentState = RequestState.InProgress, IsStarted = true, Message = "Registering Domain Identifier", ManagedItem = ManagedSites[0] });
             *  BeginTrackingProgress(new RequestProgressState { CurrentState = RequestState.Error, IsStarted = true, Message = "Rate Limited", ManagedItem = ManagedSites[0] });
             * }*/
        }