checkCertificate method

Future<CheckCertificateStatus> checkCertificate(
  1. Domain domain, {
  2. bool requestCertificate = false,
  3. bool forceRequestCertificate = false,
  4. int maxRetries = 3,
  5. Duration? retryInterval,
})

Checks the domain certificate.

Implementation

Future<CheckCertificateStatus> checkCertificate(Domain domain,
    {bool requestCertificate = false,
    bool forceRequestCertificate = false,
    int maxRetries = 3,
    Duration? retryInterval}) async {
  final domainHttpsOK = await isDomainHttpsOK(domain,
      maxRetries: maxRetries, retryInterval: retryInterval);

  if (domainHttpsOK && !forceRequestCertificate) {
    return CheckCertificateStatus.ok;
  }

  if (!requestCertificate) {
    return CheckCertificateStatus.invalid;
  }

  try {
    final ok = await this.requestCertificate(domain);
    return ok
        ? CheckCertificateStatus.okRefreshed
        : CheckCertificateStatus.error;
  } catch (e, s) {
    logger.error(e, s);
    return CheckCertificateStatus.error;
  }
}