revokeCertificate method

Future<void> revokeCertificate({
  1. required String certificateAuthorityArn,
  2. required String certificateSerial,
  3. required RevocationReason revocationReason,
})

Revokes a certificate that was issued inside ACM Private CA. If you enable a certificate revocation list (CRL) when you create or update your private CA, information about the revoked certificates will be included in the CRL. ACM Private CA writes the CRL to an S3 bucket that you specify. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason the CRL update fails, ACM Private CA attempts makes further attempts every 15 minutes. With Amazon CloudWatch, you can create alarms for the metrics CRLGenerated and MisconfiguredCRLBucket. For more information, see Supported CloudWatch Metrics. ACM Private CA also writes revocation information to the audit report. For more information, see CreateCertificateAuthorityAuditReport.

May throw ConcurrentModificationException. May throw InvalidArnException. May throw InvalidRequestException. May throw InvalidStateException. May throw LimitExceededException. May throw ResourceNotFoundException. May throw RequestAlreadyProcessedException. May throw RequestInProgressException. May throw RequestFailedException.

Parameter certificateAuthorityArn : Amazon Resource Name (ARN) of the private CA that issued the certificate to be revoked. This must be of the form:

arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012

Parameter certificateSerial : Serial number of the certificate to be revoked. This must be in hexadecimal format. You can retrieve the serial number by calling GetCertificate with the Amazon Resource Name (ARN) of the certificate you want and the ARN of your private CA. The GetCertificate action retrieves the certificate in the PEM format. You can use the following OpenSSL command to list the certificate in text format and copy the hexadecimal serial number.

openssl x509 -in file_path -text -noout

You can also copy the serial number from the console or use the DescribeCertificate action in the AWS Certificate Manager API Reference.

Parameter revocationReason : Specifies why you revoked the certificate.

Implementation

Future<void> revokeCertificate({
  required String certificateAuthorityArn,
  required String certificateSerial,
  required RevocationReason revocationReason,
}) async {
  ArgumentError.checkNotNull(
      certificateAuthorityArn, 'certificateAuthorityArn');
  _s.validateStringLength(
    'certificateAuthorityArn',
    certificateAuthorityArn,
    5,
    200,
    isRequired: true,
  );
  ArgumentError.checkNotNull(certificateSerial, 'certificateSerial');
  _s.validateStringLength(
    'certificateSerial',
    certificateSerial,
    0,
    128,
    isRequired: true,
  );
  ArgumentError.checkNotNull(revocationReason, 'revocationReason');
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'ACMPrivateCA.RevokeCertificate'
  };
  await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'CertificateAuthorityArn': certificateAuthorityArn,
      'CertificateSerial': certificateSerial,
      'RevocationReason': revocationReason.toValue(),
    },
  );
}