public static async Task InitAsync(ILogger logger, CertificateMode certificateMode)
        {
            _logger = logger;

            _logger.LogInformation($"Initializing LetsEncrypt bits");

            //ACCOUNT
            _logger.LogInformation("    Creating or Retrieving account");

            if (await AzureHelper.CheckIfFileExistsBlobStorageAsync(Constants.AccountKeyFileName))
            {
                _logger.LogInformation("        Retrieving existing account");

                // Load the saved account key
                var pemKey = await AzureHelper.ReadFileFromBlobStorageToStringAsync(Constants.AccountKeyFileName);

                var accountKey = KeyFactory.FromPem(pemKey);
                _acme = new AcmeContext(certificateMode == CertificateMode.Production ? WellKnownServers.LetsEncryptV2 : WellKnownServers.LetsEncryptStagingV2, accountKey);
                var account = await _acme.Account();
            }
            else
            {
                _logger.LogInformation("        Creating new account");
                _acme = new AcmeContext(certificateMode == CertificateMode.Production ? WellKnownServers.LetsEncryptV2 : WellKnownServers.LetsEncryptStagingV2);
                var account = await _acme.NewAccount(Settings.CertificateOwnerEmail, true);

                // Save the account key for later use
                var pemKey = _acme.AccountKey.ToPem();
                await AzureHelper.SaveFileToBlobStorageAsync(Constants.AccountKeyFileName, pemKey);
            }

            _logger.LogInformation("    Account set");
            _logger.LogInformation(Environment.NewLine);
        }
        private static async Task <IEnumerable <AppProperty> > BuildAppPropertiesListAsync()
        {
            try
            {
                var appPropertiesStr = await AzureHelper.ReadFileFromBlobStorageToStringAsync(Constants.AppPropertiesFileName);

                var appProps = JsonConvert.DeserializeObject <List <AppProperty> >(appPropertiesStr);
                return(appProps);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error while building/deserializing App Properties list. Cannot proceed.");
                await MailHelper.SendEmailForErrorAsync(ex, "Error while building/deserializing App Properties list. Cannot proceed.");

                return(null);
            }
        }
Exemple #3
0
        private static async Task <CsrInfo> BuildCertificaeInfoAsync()
        {
            try
            {
                var certInfoStr = await AzureHelper.ReadFileFromBlobStorageToStringAsync(Constants.CertInfoFileName);

                var certInfo = JsonConvert.DeserializeObject <CsrInfo>(certInfoStr);
                return(certInfo);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error while building/deserializing Certificte Info file. Cannot proceed.");
                await MailHelper.SendEmailForErrorAsync(ex, "Error while building/deserializing Certificte Info file. Cannot proceed.");

                throw;
            }
        }