/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Contains configuration information for a certificate revocation list (CRL).
* Your private certificate authority (CA) creates base CRLs. Delta CRLs are not
* supported. You can enable CRLs for your new or an existing private CA by setting
* the Enabled parameter to Amazon Web Services Private CA assets that are stored in Amazon S3 can be
* protected with encryption. For more information, see Encrypting
* Your CRLs. Your private CA uses the value in the
* ExpirationInDays parameter to calculate the nextUpdate field in
* the CRL. The CRL is refreshed prior to a certificate's expiration date or when a
* certificate is revoked. When a certificate is revoked, it appears in the CRL
* until the certificate expires, and then in one additional CRL after expiration,
* and it always appears in the audit report. A CRL is typically updated
* approximately 30 minutes after a certificate is revoked. If for any reason a CRL
* update fails, Amazon Web Services Private CA makes further attempts every 15
* minutes. CRLs contain the following fields:
* Version: The current version number defined in RFC 5280 is V2. The
* integer value is 0x1. Signature Algorithm: The name
* of the algorithm used to sign the CRL. Issuer: The
* X.500 distinguished name of your private CA that issued the CRL. Last Update: The issue date and time of this CRL.
* Next Update: The day and time by which the next CRL will be issued. Revoked Certificates: List of revoked certificates. Each
* list item contains the following information. Serial
* Number: The serial number, in hexadecimal format, of the revoked
* certificate. Revocation Date: Date and time the
* certificate was revoked. CRL Entry Extensions:
* Optional extensions for the CRL entry. X509v3 CRL Reason
* Code: Reason the certificate was revoked. CRL Extensions: Optional extensions for the CRL. X509v3 Authority Key Identifier: Identifies the public key associated
* with the private key used to sign the certificate. X509v3
* CRL Number:: Decimal sequence number for the CRL. Signature Algorithm: Algorithm used by your private CA to sign the
* CRL. Signature Value: Signature computed over the
* CRL. Certificate revocation lists created by Amazon Web
* Services Private CA are DER-encoded. You can use the following OpenSSL command
* to list a CRL. For more information, see Planning
* a certificate revocation list (CRL) in the Amazon Web Services Private
* Certificate Authority User Guide true
. Your private CA writes CRLs
* to an S3 bucket that you specify in the S3BucketName parameter. You can
* hide the name of your bucket by specifying a value for the CustomCname
* parameter. Your private CA copies the CNAME or the S3 bucket name to the CRL
* Distribution Points extension of each certificate it issues. Your S3 bucket
* policy must give write permission to Amazon Web Services Private CA.
openssl crl -inform DER -text -in crl_path
* -noout
See Also:
AWS
* API Reference
Boolean value that specifies whether certificate revocation lists (CRLs) are * enabled. You can use this value to enable certificate revocation for a new CA * when you call the CreateCertificateAuthority * action or for an existing CA when you call the UpdateCertificateAuthority * action.
*/ inline bool GetEnabled() const{ return m_enabled; } /** *Boolean value that specifies whether certificate revocation lists (CRLs) are * enabled. You can use this value to enable certificate revocation for a new CA * when you call the CreateCertificateAuthority * action or for an existing CA when you call the UpdateCertificateAuthority * action.
*/ inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; } /** *Boolean value that specifies whether certificate revocation lists (CRLs) are * enabled. You can use this value to enable certificate revocation for a new CA * when you call the CreateCertificateAuthority * action or for an existing CA when you call the UpdateCertificateAuthority * action.
*/ inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; } /** *Boolean value that specifies whether certificate revocation lists (CRLs) are * enabled. You can use this value to enable certificate revocation for a new CA * when you call the CreateCertificateAuthority * action or for an existing CA when you call the UpdateCertificateAuthority * action.
*/ inline CrlConfiguration& WithEnabled(bool value) { SetEnabled(value); return *this;} /** *Validity period of the CRL in days.
*/ inline int GetExpirationInDays() const{ return m_expirationInDays; } /** *Validity period of the CRL in days.
*/ inline bool ExpirationInDaysHasBeenSet() const { return m_expirationInDaysHasBeenSet; } /** *Validity period of the CRL in days.
*/ inline void SetExpirationInDays(int value) { m_expirationInDaysHasBeenSet = true; m_expirationInDays = value; } /** *Validity period of the CRL in days.
*/ inline CrlConfiguration& WithExpirationInDays(int value) { SetExpirationInDays(value); return *this;} /** *Name inserted into the certificate CRL Distribution Points extension * that enables the use of an alias for the CRL distribution point. Use this value * if you don't want the name of your S3 bucket to be public.
The * content of a Canonical Name (CNAME) record must conform to RFC2396 restrictions on the use * of special characters in URIs. Additionally, the value of the CNAME must not * include a protocol prefix such as "http://" or "https://".
*/ inline const Aws::String& GetCustomCname() const{ return m_customCname; } /** *Name inserted into the certificate CRL Distribution Points extension * that enables the use of an alias for the CRL distribution point. Use this value * if you don't want the name of your S3 bucket to be public.
The * content of a Canonical Name (CNAME) record must conform to RFC2396 restrictions on the use * of special characters in URIs. Additionally, the value of the CNAME must not * include a protocol prefix such as "http://" or "https://".
*/ inline bool CustomCnameHasBeenSet() const { return m_customCnameHasBeenSet; } /** *Name inserted into the certificate CRL Distribution Points extension * that enables the use of an alias for the CRL distribution point. Use this value * if you don't want the name of your S3 bucket to be public.
The * content of a Canonical Name (CNAME) record must conform to RFC2396 restrictions on the use * of special characters in URIs. Additionally, the value of the CNAME must not * include a protocol prefix such as "http://" or "https://".
*/ inline void SetCustomCname(const Aws::String& value) { m_customCnameHasBeenSet = true; m_customCname = value; } /** *Name inserted into the certificate CRL Distribution Points extension * that enables the use of an alias for the CRL distribution point. Use this value * if you don't want the name of your S3 bucket to be public.
The * content of a Canonical Name (CNAME) record must conform to RFC2396 restrictions on the use * of special characters in URIs. Additionally, the value of the CNAME must not * include a protocol prefix such as "http://" or "https://".
*/ inline void SetCustomCname(Aws::String&& value) { m_customCnameHasBeenSet = true; m_customCname = std::move(value); } /** *Name inserted into the certificate CRL Distribution Points extension * that enables the use of an alias for the CRL distribution point. Use this value * if you don't want the name of your S3 bucket to be public.
The * content of a Canonical Name (CNAME) record must conform to RFC2396 restrictions on the use * of special characters in URIs. Additionally, the value of the CNAME must not * include a protocol prefix such as "http://" or "https://".
*/ inline void SetCustomCname(const char* value) { m_customCnameHasBeenSet = true; m_customCname.assign(value); } /** *Name inserted into the certificate CRL Distribution Points extension * that enables the use of an alias for the CRL distribution point. Use this value * if you don't want the name of your S3 bucket to be public.
The * content of a Canonical Name (CNAME) record must conform to RFC2396 restrictions on the use * of special characters in URIs. Additionally, the value of the CNAME must not * include a protocol prefix such as "http://" or "https://".
*/ inline CrlConfiguration& WithCustomCname(const Aws::String& value) { SetCustomCname(value); return *this;} /** *Name inserted into the certificate CRL Distribution Points extension * that enables the use of an alias for the CRL distribution point. Use this value * if you don't want the name of your S3 bucket to be public.
The * content of a Canonical Name (CNAME) record must conform to RFC2396 restrictions on the use * of special characters in URIs. Additionally, the value of the CNAME must not * include a protocol prefix such as "http://" or "https://".
*/ inline CrlConfiguration& WithCustomCname(Aws::String&& value) { SetCustomCname(std::move(value)); return *this;} /** *Name inserted into the certificate CRL Distribution Points extension * that enables the use of an alias for the CRL distribution point. Use this value * if you don't want the name of your S3 bucket to be public.
The * content of a Canonical Name (CNAME) record must conform to RFC2396 restrictions on the use * of special characters in URIs. Additionally, the value of the CNAME must not * include a protocol prefix such as "http://" or "https://".
*/ inline CrlConfiguration& WithCustomCname(const char* value) { SetCustomCname(value); return *this;} /** *Name of the S3 bucket that contains the CRL. If you do not provide a value * for the CustomCname argument, the name of your S3 bucket is placed into * the CRL Distribution Points extension of the issued certificate. You can * change the name of your bucket by calling the UpdateCertificateAuthority * operation. You must specify a bucket * policy that allows Amazon Web Services Private CA to write the CRL to your * bucket.
The S3BucketName
parameter must conform to
* the S3
* bucket naming rules.
Name of the S3 bucket that contains the CRL. If you do not provide a value * for the CustomCname argument, the name of your S3 bucket is placed into * the CRL Distribution Points extension of the issued certificate. You can * change the name of your bucket by calling the UpdateCertificateAuthority * operation. You must specify a bucket * policy that allows Amazon Web Services Private CA to write the CRL to your * bucket.
The S3BucketName
parameter must conform to
* the S3
* bucket naming rules.
Name of the S3 bucket that contains the CRL. If you do not provide a value * for the CustomCname argument, the name of your S3 bucket is placed into * the CRL Distribution Points extension of the issued certificate. You can * change the name of your bucket by calling the UpdateCertificateAuthority * operation. You must specify a bucket * policy that allows Amazon Web Services Private CA to write the CRL to your * bucket.
The S3BucketName
parameter must conform to
* the S3
* bucket naming rules.
Name of the S3 bucket that contains the CRL. If you do not provide a value * for the CustomCname argument, the name of your S3 bucket is placed into * the CRL Distribution Points extension of the issued certificate. You can * change the name of your bucket by calling the UpdateCertificateAuthority * operation. You must specify a bucket * policy that allows Amazon Web Services Private CA to write the CRL to your * bucket.
The S3BucketName
parameter must conform to
* the S3
* bucket naming rules.
Name of the S3 bucket that contains the CRL. If you do not provide a value * for the CustomCname argument, the name of your S3 bucket is placed into * the CRL Distribution Points extension of the issued certificate. You can * change the name of your bucket by calling the UpdateCertificateAuthority * operation. You must specify a bucket * policy that allows Amazon Web Services Private CA to write the CRL to your * bucket.
The S3BucketName
parameter must conform to
* the S3
* bucket naming rules.
Name of the S3 bucket that contains the CRL. If you do not provide a value * for the CustomCname argument, the name of your S3 bucket is placed into * the CRL Distribution Points extension of the issued certificate. You can * change the name of your bucket by calling the UpdateCertificateAuthority * operation. You must specify a bucket * policy that allows Amazon Web Services Private CA to write the CRL to your * bucket.
The S3BucketName
parameter must conform to
* the S3
* bucket naming rules.
Name of the S3 bucket that contains the CRL. If you do not provide a value * for the CustomCname argument, the name of your S3 bucket is placed into * the CRL Distribution Points extension of the issued certificate. You can * change the name of your bucket by calling the UpdateCertificateAuthority * operation. You must specify a bucket * policy that allows Amazon Web Services Private CA to write the CRL to your * bucket.
The S3BucketName
parameter must conform to
* the S3
* bucket naming rules.
Name of the S3 bucket that contains the CRL. If you do not provide a value * for the CustomCname argument, the name of your S3 bucket is placed into * the CRL Distribution Points extension of the issued certificate. You can * change the name of your bucket by calling the UpdateCertificateAuthority * operation. You must specify a bucket * policy that allows Amazon Web Services Private CA to write the CRL to your * bucket.
The S3BucketName
parameter must conform to
* the S3
* bucket naming rules.
Determines whether the CRL will be publicly readable or privately held in the * CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over * the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of * the CRL S3 bucket can access the CRL, and your PKI clients may need an * alternative method of access.
If no value is specified, the default is
* PUBLIC_READ
.
Note: This default can cause CA
* creation to fail in some circumstances. If you have have enabled the Block
* Public Access (BPA) feature in your S3 account, then you must specify the value
* of this parameter as BUCKET_OWNER_FULL_CONTROL
, and not doing so
* results in an error. If you have disabled BPA in S3, then you can specify either
* BUCKET_OWNER_FULL_CONTROL
or PUBLIC_READ
as the
* value.
For more information, see Blocking * public access to the S3 bucket.
*/ inline const S3ObjectAcl& GetS3ObjectAcl() const{ return m_s3ObjectAcl; } /** *Determines whether the CRL will be publicly readable or privately held in the * CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over * the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of * the CRL S3 bucket can access the CRL, and your PKI clients may need an * alternative method of access.
If no value is specified, the default is
* PUBLIC_READ
.
Note: This default can cause CA
* creation to fail in some circumstances. If you have have enabled the Block
* Public Access (BPA) feature in your S3 account, then you must specify the value
* of this parameter as BUCKET_OWNER_FULL_CONTROL
, and not doing so
* results in an error. If you have disabled BPA in S3, then you can specify either
* BUCKET_OWNER_FULL_CONTROL
or PUBLIC_READ
as the
* value.
For more information, see Blocking * public access to the S3 bucket.
*/ inline bool S3ObjectAclHasBeenSet() const { return m_s3ObjectAclHasBeenSet; } /** *Determines whether the CRL will be publicly readable or privately held in the * CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over * the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of * the CRL S3 bucket can access the CRL, and your PKI clients may need an * alternative method of access.
If no value is specified, the default is
* PUBLIC_READ
.
Note: This default can cause CA
* creation to fail in some circumstances. If you have have enabled the Block
* Public Access (BPA) feature in your S3 account, then you must specify the value
* of this parameter as BUCKET_OWNER_FULL_CONTROL
, and not doing so
* results in an error. If you have disabled BPA in S3, then you can specify either
* BUCKET_OWNER_FULL_CONTROL
or PUBLIC_READ
as the
* value.
For more information, see Blocking * public access to the S3 bucket.
*/ inline void SetS3ObjectAcl(const S3ObjectAcl& value) { m_s3ObjectAclHasBeenSet = true; m_s3ObjectAcl = value; } /** *Determines whether the CRL will be publicly readable or privately held in the * CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over * the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of * the CRL S3 bucket can access the CRL, and your PKI clients may need an * alternative method of access.
If no value is specified, the default is
* PUBLIC_READ
.
Note: This default can cause CA
* creation to fail in some circumstances. If you have have enabled the Block
* Public Access (BPA) feature in your S3 account, then you must specify the value
* of this parameter as BUCKET_OWNER_FULL_CONTROL
, and not doing so
* results in an error. If you have disabled BPA in S3, then you can specify either
* BUCKET_OWNER_FULL_CONTROL
or PUBLIC_READ
as the
* value.
For more information, see Blocking * public access to the S3 bucket.
*/ inline void SetS3ObjectAcl(S3ObjectAcl&& value) { m_s3ObjectAclHasBeenSet = true; m_s3ObjectAcl = std::move(value); } /** *Determines whether the CRL will be publicly readable or privately held in the * CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over * the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of * the CRL S3 bucket can access the CRL, and your PKI clients may need an * alternative method of access.
If no value is specified, the default is
* PUBLIC_READ
.
Note: This default can cause CA
* creation to fail in some circumstances. If you have have enabled the Block
* Public Access (BPA) feature in your S3 account, then you must specify the value
* of this parameter as BUCKET_OWNER_FULL_CONTROL
, and not doing so
* results in an error. If you have disabled BPA in S3, then you can specify either
* BUCKET_OWNER_FULL_CONTROL
or PUBLIC_READ
as the
* value.
For more information, see Blocking * public access to the S3 bucket.
*/ inline CrlConfiguration& WithS3ObjectAcl(const S3ObjectAcl& value) { SetS3ObjectAcl(value); return *this;} /** *Determines whether the CRL will be publicly readable or privately held in the * CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over * the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of * the CRL S3 bucket can access the CRL, and your PKI clients may need an * alternative method of access.
If no value is specified, the default is
* PUBLIC_READ
.
Note: This default can cause CA
* creation to fail in some circumstances. If you have have enabled the Block
* Public Access (BPA) feature in your S3 account, then you must specify the value
* of this parameter as BUCKET_OWNER_FULL_CONTROL
, and not doing so
* results in an error. If you have disabled BPA in S3, then you can specify either
* BUCKET_OWNER_FULL_CONTROL
or PUBLIC_READ
as the
* value.
For more information, see Blocking * public access to the S3 bucket.
*/ inline CrlConfiguration& WithS3ObjectAcl(S3ObjectAcl&& value) { SetS3ObjectAcl(std::move(value)); return *this;} private: bool m_enabled; bool m_enabledHasBeenSet = false; int m_expirationInDays; bool m_expirationInDaysHasBeenSet = false; Aws::String m_customCname; bool m_customCnameHasBeenSet = false; Aws::String m_s3BucketName; bool m_s3BucketNameHasBeenSet = false; S3ObjectAcl m_s3ObjectAcl; bool m_s3ObjectAclHasBeenSet = false; }; } // namespace Model } // namespace ACMPCA } // namespace Aws