requestCertificate method

Future<bool> requestCertificate(
  1. String domain,
  2. String email
)

Request a certificate for domain using an ACME client.

Calls doACMEChallenge.

Implementation

Future<bool> requestCertificate(String domain, String email) async {
  var accountKeyPair = await certificatesHandler.ensureAccountPEMKeyPair();

  await certificatesHandler.ensureDomainPEMKeyPair(domain);

  var csr = await certificatesHandler.generateCSR(domain, email);
  if (csr == null) {
    throw StateError("Can't generate CSR for domain: $domain");
  }

  var certs = await doACMEChallenge(domain, [email],
      accountKeyPair.privateKeyPEM, accountKeyPair.publicKeyPEM, csr);

  var ok =
      await certificatesHandler.saveSignedCertificateChain(domain, certs);

  return ok;
}