public CertificateAcquirer(ILogger <CertificateAcquirer> logger, DataContext dataContext, CertesAcmeProvider certesAcmeProvider, NotificationService notificationService) { _logger = logger; _dataContext = dataContext; _certesAcmeProvider = certesAcmeProvider; _notificationService = notificationService; }
public CertificateAcquirer(ILogger <CertificateAcquirer> logger, DataContext dataContext, CertesAcmeProvider certesAcmeProvider, IOptionsSnapshot <MailSenderInfo> mailSenderInfo, MailSender mailSender) { _logger = logger; _dataContext = dataContext; _certesAcmeProvider = certesAcmeProvider; _mailSenderInfo = mailSenderInfo; _mailSender = mailSender; }
public CreateModel(ILogger <CreateModel> logger, DataContext context, KeyGenerator keyGenerator, UserManager <ApplicationUser> userManager, CertesAcmeProvider certesAcmeProvider) { _logger = logger; _context = context; _keyGenerator = keyGenerator; _userManager = userManager; _certesAcmeProvider = certesAcmeProvider; }
public AcmeModel(ILogger <IndexModel> logger, DataContext dataContext, CertesAcmeProvider certesAcmeProvider, UserManager <ApplicationUser> userManager, IWritableOptions <HttpServer> httpServerOptions, IWritableOptions <Options.Setup> setupOptions, KeyGenerator keyGenerator) { _logger = logger; _dataContext = dataContext; _certesAcmeProvider = certesAcmeProvider; _userManager = userManager; _httpServerOptions = httpServerOptions; _setupOptions = setupOptions; _keyGenerator = keyGenerator; }
public async Task Invoke(HttpContext httpContext, ILogger <SetupAcmeCertMiddleware> logger, CertesAcmeProvider certes, DataContext dataContext, IOptionsSnapshot <HttpServer> httpServerOptions) { if (httpContext.Request.Method != "POST") { httpContext.Response.Redirect("/"); return; } var host = httpServerOptions.Value.SiteHostname; await httpContext.Response.WriteAsync(ConsoleHeader); await httpContext.Response.WriteAsync($@" Starting certificate acquisition for {host}... <br />"); var acmeCert = await dataContext.AcmeCertificates .Include(x => x.Key) .Include(x => x.AcmeAccount) .ThenInclude(x => x.Key) .FirstAsync(x => x.Subject == host); await httpContext.Response.WriteAsync($@" Initializing ACME client and ensuring account... <br />"); certes.Initialize(acmeCert); // Begin the order await httpContext.Response.WriteAsync($@" Creating order... <br />"); var acmeOrder = await certes.BeginOrder(); dataContext.AcmeOrders.Add(acmeOrder); dataContext.SaveChanges(); // Validate (i.e. ask ACME to check via HTTP-01 or DNS-01) await httpContext.Response.WriteAsync($@" Requesting ACME validation... <br />"); await certes.Validate(); dataContext.SaveChanges(); // Complete the order (i.e. obtain the certifiate) await httpContext.Response.WriteAsync($@" Completing order... (this can take up to 30 seconds)<br />"); await certes.Complete(); // Remove old ACME requests because they're irrelevant await httpContext.Response.WriteAsync($@" Cleaning up... <br />"); acmeOrder.AcmeRequests.Clear(); dataContext.SaveChanges(); await httpContext.Response.WriteAsync($@" Done. Status: {acmeOrder.Status}... <br />"); bool restart = false; if (!acmeOrder.Completed) { var errors = acmeOrder.Errors.Replace("\r\n", "<br />"); await httpContext.Response.WriteAsync($@" <div class=""red""><p>Errors:<br />{errors}</p></div><br />"); } else { restart = true; await httpContext.Response.WriteAsync(@" <br /> Setup finished successfully! <br /> <hr /> <br /> Certera is restarting... <br /> <script> var restartFinished = setInterval(checkLoaded, 5000); var tries = 5; function checkLoaded() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { window.location.href=""/""; } }; xhttp.open(""GET"", ""/api/test"", true); xhttp.send(); } </script> <noscript> Please wait 10 seconds for server to restart. Then, <a href=""/"">click here to continue</a>. </noscript>"); } await httpContext.Response.WriteAsync(@" </p> </body> </html>"); if (restart) { Program.Restart(); } }
public KeyGenerator(DataContext dataContext, CertesAcmeProvider certesAcmeProvider) { _dataContext = dataContext; _certesAcmeProvider = certesAcmeProvider; }
public HistoryModel(DataContext context, CertesAcmeProvider certesAcmeProvider, ILogger <HistoryModel> logger) { _context = context; _certesAcmeProvider = certesAcmeProvider; _logger = logger; }