Esempio n. 1
0
 public Task <DnsChallenge> ChallengeDNS(ChallengeOrder order)
 {
     _logger.LogInformation($"NoOp challenge for`{order.DnsName}`");
     return(Task.FromResult(new DnsChallenge {
         Name = "_acme-challenge.bot", Value = "1234"
     }));
 }
Esempio n. 2
0
 public Task <CertificateResult> GetCertificate(ChallengeOrder order)
 {
     _logger.LogInformation("Noop get certificate");
     return(Task.FromResult(new CertificateResult
     {
         Cert = "certificate pem content. NOOP",
         Key = "certificate key content. NOOP",
         Domain = order.DnsName
     }));
 }
Esempio n. 3
0
        public async Task <DnsChallenge> ChallengeDNS(ChallengeOrder challengeOrder)
        {
            var order        = (IOrderContext)challengeOrder.Order;
            var authz        = (await order.Authorizations()).First();
            var dnsChallenge = await authz.Dns();

            var dnsTxt = _acme.AccountKey.DnsTxt(dnsChallenge.Token);

            return(new DnsChallenge
            {
                Name = $"_acme-challenge.{challengeOrder.DnsName}",
                Value = dnsTxt,
                Context = dnsChallenge
            });
        }
Esempio n. 4
0
        public async Task <CertificateResult> GetCertificate(ChallengeOrder challengeOrder)
        {
            var order      = (IOrderContext)challengeOrder.Order;
            var privateKey = KeyFactory.NewKey(KeyAlgorithm.ES256);
            CertificateChain cert;

            try
            {
                cert = await TryOrderGenerate(order, challengeOrder.DnsName, privateKey);
            }
            catch
            {
                await Task.Delay(TimeSpan.FromSeconds(10));

                cert = await TryOrderGenerate(order, challengeOrder.DnsName, privateKey);
            }

            return(new CertificateResult
            {
                Cert = cert.ToPem(),
                Key = privateKey.ToPem(),
                Domain = challengeOrder.DnsName.Replace("*", "wildcard")
            });
        }