requestCertificate method
- required String domainName,
- String? certificateAuthorityArn,
- List<
DomainValidationOption> ? domainValidationOptions, - String? idempotencyToken,
- KeyAlgorithm? keyAlgorithm,
- CertificateManagedBy? managedBy,
- CertificateOptions? options,
- List<
String> ? subjectAlternativeNames, - List<
Tag> ? tags, - ValidationMethod? validationMethod,
Requests an ACM certificate for use with other Amazon Web Services
services. To request an ACM certificate, you must specify a fully
qualified domain name (FQDN) in the DomainName parameter. You
can also specify additional FQDNs in the
SubjectAlternativeNames parameter.
If you are requesting a private certificate, domain validation is not
required. If you are requesting a public certificate, each domain name
that you specify must be validated to verify that you own or control the
domain. You can use DNS
validation or email
validation. We recommend that you use DNS validation.
After successful completion of the RequestCertificate action,
there is a delay of several seconds before you can retrieve information
about the new certificate.
May throw InvalidArnException.
May throw InvalidDomainValidationOptionsException.
May throw InvalidParameterException.
May throw InvalidTagException.
May throw LimitExceededException.
May throw TagPolicyException.
May throw TooManyTagsException.
Parameter domainName :
Fully qualified domain name (FQDN), such as www.example.com, that you want
to secure with an ACM certificate. Use an asterisk (*) to create a
wildcard certificate that protects several sites in the same domain. For
example, *.example.com protects www.example.com, site.example.com, and
images.example.com.
In compliance with RFC 5280, the length of the domain name (technically, the Common Name) that you provide cannot exceed 64 octets (characters), including periods. To add a longer domain name, specify it in the Subject Alternative Name field, which supports names up to 253 octets in length.
Parameter certificateAuthorityArn :
The Amazon Resource Name (ARN) of the private certificate authority (CA)
that will be used to issue the certificate. If you do not provide an ARN
and you are trying to request a private certificate, ACM will attempt to
issue a public certificate. For more information about private CAs, see
the Amazon
Web Services Private Certificate Authority user guide. The ARN must
have the following form:
arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
Parameter domainValidationOptions :
The domain name that you want ACM to use to send you emails so that you
can validate domain ownership.
Parameter idempotencyToken :
Customer chosen string that can be used to distinguish between calls to
RequestCertificate. Idempotency tokens time out after one
hour. Therefore, if you call RequestCertificate multiple
times with the same idempotency token within one hour, ACM recognizes that
you are requesting only one certificate and will issue only one. If you
change the idempotency token for each call, ACM recognizes that you are
requesting multiple certificates.
Parameter keyAlgorithm :
Specifies the algorithm of the public and private key pair that your
certificate uses to encrypt data. RSA is the default key algorithm for ACM
certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are
smaller, offering security comparable to RSA keys but with greater
computing efficiency. However, ECDSA is not supported by all network
clients. Some Amazon Web Services services may require RSA keys, or only
support ECDSA keys of a particular size, while others allow the use of
either RSA and ECDSA keys to ensure that compatibility is not broken.
Check the requirements for the Amazon Web Services service where you plan
to deploy your certificate. For more information about selecting an
algorithm, see Key
algorithms.
-
RSA_2048 -
EC_prime256v1 -
EC_secp384r1
Parameter managedBy :
Identifies the Amazon Web Services service that manages the certificate
issued by ACM.
Parameter options :
You can use this parameter to specify whether to add the certificate to a
certificate transparency log and export your certificate.
Certificate transparency makes it possible to detect SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates that have not been logged typically produce an error message in a browser. For more information, see Opting Out of Certificate Transparency Logging.
You can export public ACM certificates to use with Amazon Web Services services as well as outside the Amazon Web Services Cloud. For more information, see Certificate Manager exportable public certificate.
Parameter subjectAlternativeNames :
Additional FQDNs to be included in the Subject Alternative Name extension
of the ACM certificate. For example, add the name www.example.net to a
certificate for which the DomainName field is www.example.com
if users can reach your site by using either name. The maximum number of
domain names that you can add to an ACM certificate is 100. However, the
initial quota is 10 domain names. If you need more than 10 names, you must
request a quota increase. For more information, see Quotas.
The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples:
-
(63 octets).(63 octets).(63 octets).(61 octets)is legal because the total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets. -
(64 octets).(63 octets).(63 octets).(61 octets)is not legal because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds 63 octets. -
(63 octets).(63 octets).(63 octets).(62 octets)is not legal because the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets.
Parameter tags :
One or more resource tags to associate with the certificate.
Parameter validationMethod :
The method you want to use if you are requesting a public certificate to
validate that you own or control domain. You can validate
with DNS or validate
with email. We recommend that you use DNS validation.
Implementation
Future<RequestCertificateResponse> requestCertificate({
required String domainName,
String? certificateAuthorityArn,
List<DomainValidationOption>? domainValidationOptions,
String? idempotencyToken,
KeyAlgorithm? keyAlgorithm,
CertificateManagedBy? managedBy,
CertificateOptions? options,
List<String>? subjectAlternativeNames,
List<Tag>? tags,
ValidationMethod? validationMethod,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'CertificateManager.RequestCertificate'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'DomainName': domainName,
if (certificateAuthorityArn != null)
'CertificateAuthorityArn': certificateAuthorityArn,
if (domainValidationOptions != null)
'DomainValidationOptions': domainValidationOptions,
if (idempotencyToken != null) 'IdempotencyToken': idempotencyToken,
if (keyAlgorithm != null) 'KeyAlgorithm': keyAlgorithm.value,
if (managedBy != null) 'ManagedBy': managedBy.value,
if (options != null) 'Options': options,
if (subjectAlternativeNames != null)
'SubjectAlternativeNames': subjectAlternativeNames,
if (tags != null) 'Tags': tags,
if (validationMethod != null)
'ValidationMethod': validationMethod.value,
},
);
return RequestCertificateResponse.fromJson(jsonResponse.body);
}