create_certificate

create_certificate(**kwargs)

Creates an SSL/TLS certificate for an Amazon Lightsail content delivery network (CDN) distribution and a container service.

After the certificate is valid, use the AttachCertificateToDistribution action to use the certificate and its domains with your distribution. Or use the UpdateContainerService action to use the certificate and its domains with your container service.

Warning

Only certificates created in the us-east-1 Amazon Web Services Region can be attached to Lightsail distributions. Lightsail distributions are global resources that can reference an origin in any Amazon Web Services Region, and distribute its content globally. However, all distributions are located in the us-east-1 Region.

See also: AWS API Documentation

Request Syntax

response = client.create_certificate(
    certificateName='string',
    domainName='string',
    subjectAlternativeNames=[
        'string',
    ],
    tags=[
        {
            'key': 'string',
            'value': 'string'
        },
    ]
)
Parameters
  • certificateName (string) --

    [REQUIRED]

    The name for the certificate.

  • domainName (string) --

    [REQUIRED]

    The domain name (e.g., example.com ) for the certificate.

  • subjectAlternativeNames (list) --

    An array of strings that specify the alternate domains (e.g., example2.com ) and subdomains (e.g., blog.example.com ) for the certificate.

    You can specify a maximum of nine alternate domains (in addition to the primary domain name).

    Wildcard domain entries (e.g., *.example.com ) are not supported.

    • (string) --
  • tags (list) --

    The tag keys and optional values to add to the certificate during create.

    Use the TagResource action to tag a resource after it's created.

    • (dict) --

      Describes a tag key and optional value assigned to an Amazon Lightsail resource.

      For more information about tags in Lightsail, see the Amazon Lightsail Developer Guide.

      • key (string) --

        The key of the tag.

        Constraints: Tag keys accept a maximum of 128 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

      • value (string) --

        The value of the tag.

        Constraints: Tag values accept a maximum of 256 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

Return type

dict

Returns

Response Syntax

{
    'certificate': {
        'certificateArn': 'string',
        'certificateName': 'string',
        'domainName': 'string',
        'certificateDetail': {
            'arn': 'string',
            'name': 'string',
            'domainName': 'string',
            'status': 'PENDING_VALIDATION'|'ISSUED'|'INACTIVE'|'EXPIRED'|'VALIDATION_TIMED_OUT'|'REVOKED'|'FAILED',
            'serialNumber': 'string',
            'subjectAlternativeNames': [
                'string',
            ],
            'domainValidationRecords': [
                {
                    'domainName': 'string',
                    'resourceRecord': {
                        'name': 'string',
                        'type': 'string',
                        'value': 'string'
                    },
                    'dnsRecordCreationState': {
                        'code': 'SUCCEEDED'|'STARTED'|'FAILED',
                        'message': 'string'
                    },
                    'validationStatus': 'PENDING_VALIDATION'|'FAILED'|'SUCCESS'
                },
            ],
            'requestFailureReason': 'string',
            'inUseResourceCount': 123,
            'keyAlgorithm': 'string',
            'createdAt': datetime(2015, 1, 1),
            'issuedAt': datetime(2015, 1, 1),
            'issuerCA': 'string',
            'notBefore': datetime(2015, 1, 1),
            'notAfter': datetime(2015, 1, 1),
            'eligibleToRenew': 'string',
            'renewalSummary': {
                'domainValidationRecords': [
                    {
                        'domainName': 'string',
                        'resourceRecord': {
                            'name': 'string',
                            'type': 'string',
                            'value': 'string'
                        },
                        'dnsRecordCreationState': {
                            'code': 'SUCCEEDED'|'STARTED'|'FAILED',
                            'message': 'string'
                        },
                        'validationStatus': 'PENDING_VALIDATION'|'FAILED'|'SUCCESS'
                    },
                ],
                'renewalStatus': 'PendingAutoRenewal'|'PendingValidation'|'Success'|'Failed',
                'renewalStatusReason': 'string',
                'updatedAt': datetime(2015, 1, 1)
            },
            'revokedAt': datetime(2015, 1, 1),
            'revocationReason': 'string',
            'tags': [
                {
                    'key': 'string',
                    'value': 'string'
                },
            ],
            'supportCode': 'string'
        },
        'tags': [
            {
                'key': 'string',
                'value': 'string'
            },
        ]
    },
    'operations': [
        {
            'id': 'string',
            'resourceName': 'string',
            'resourceType': 'ContainerService'|'Instance'|'StaticIp'|'KeyPair'|'InstanceSnapshot'|'Domain'|'PeeredVpc'|'LoadBalancer'|'LoadBalancerTlsCertificate'|'Disk'|'DiskSnapshot'|'RelationalDatabase'|'RelationalDatabaseSnapshot'|'ExportSnapshotRecord'|'CloudFormationStackRecord'|'Alarm'|'ContactMethod'|'Distribution'|'Certificate'|'Bucket',
            'createdAt': datetime(2015, 1, 1),
            'location': {
                'availabilityZone': 'string',
                'regionName': 'us-east-1'|'us-east-2'|'us-west-1'|'us-west-2'|'eu-west-1'|'eu-west-2'|'eu-west-3'|'eu-central-1'|'ca-central-1'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'ap-northeast-2'|'eu-north-1'
            },
            'isTerminal': True|False,
            'operationDetails': 'string',
            'operationType': 'DeleteKnownHostKeys'|'DeleteInstance'|'CreateInstance'|'StopInstance'|'StartInstance'|'RebootInstance'|'OpenInstancePublicPorts'|'PutInstancePublicPorts'|'CloseInstancePublicPorts'|'AllocateStaticIp'|'ReleaseStaticIp'|'AttachStaticIp'|'DetachStaticIp'|'UpdateDomainEntry'|'DeleteDomainEntry'|'CreateDomain'|'DeleteDomain'|'CreateInstanceSnapshot'|'DeleteInstanceSnapshot'|'CreateInstancesFromSnapshot'|'CreateLoadBalancer'|'DeleteLoadBalancer'|'AttachInstancesToLoadBalancer'|'DetachInstancesFromLoadBalancer'|'UpdateLoadBalancerAttribute'|'CreateLoadBalancerTlsCertificate'|'DeleteLoadBalancerTlsCertificate'|'AttachLoadBalancerTlsCertificate'|'CreateDisk'|'DeleteDisk'|'AttachDisk'|'DetachDisk'|'CreateDiskSnapshot'|'DeleteDiskSnapshot'|'CreateDiskFromSnapshot'|'CreateRelationalDatabase'|'UpdateRelationalDatabase'|'DeleteRelationalDatabase'|'CreateRelationalDatabaseFromSnapshot'|'CreateRelationalDatabaseSnapshot'|'DeleteRelationalDatabaseSnapshot'|'UpdateRelationalDatabaseParameters'|'StartRelationalDatabase'|'RebootRelationalDatabase'|'StopRelationalDatabase'|'EnableAddOn'|'DisableAddOn'|'PutAlarm'|'GetAlarms'|'DeleteAlarm'|'TestAlarm'|'CreateContactMethod'|'GetContactMethods'|'SendContactMethodVerification'|'DeleteContactMethod'|'CreateDistribution'|'UpdateDistribution'|'DeleteDistribution'|'ResetDistributionCache'|'AttachCertificateToDistribution'|'DetachCertificateFromDistribution'|'UpdateDistributionBundle'|'SetIpAddressType'|'CreateCertificate'|'DeleteCertificate'|'CreateContainerService'|'UpdateContainerService'|'DeleteContainerService'|'CreateContainerServiceDeployment'|'CreateContainerServiceRegistryLogin'|'RegisterContainerImage'|'DeleteContainerImage'|'CreateBucket'|'DeleteBucket'|'CreateBucketAccessKey'|'DeleteBucketAccessKey'|'UpdateBucketBundle'|'UpdateBucket'|'SetResourceAccessForBucket'|'UpdateInstanceMetadataOptions'|'StartGUISession'|'StopGUISession',
            'status': 'NotStarted'|'Started'|'Failed'|'Completed'|'Succeeded',
            'statusChangedAt': datetime(2015, 1, 1),
            'errorCode': 'string',
            'errorDetails': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • certificate (dict) --

      An object that describes the certificate created.

      • certificateArn (string) --

        The Amazon Resource Name (ARN) of the certificate.

      • certificateName (string) --

        The name of the certificate.

      • domainName (string) --

        The domain name of the certificate.

      • certificateDetail (dict) --

        An object that describes a certificate in detail.

        • arn (string) --

          The Amazon Resource Name (ARN) of the certificate.

        • name (string) --

          The name of the certificate (e.g., my-certificate ).

        • domainName (string) --

          The domain name of the certificate.

        • status (string) --

          The validation status of the certificate.

        • serialNumber (string) --

          The serial number of the certificate.

        • subjectAlternativeNames (list) --

          An array of strings that specify the alternate domains (e.g., example2.com ) and subdomains (e.g., blog.example.com ) of the certificate.

          • (string) --
        • domainValidationRecords (list) --

          An array of objects that describe the domain validation records of the certificate.

          • (dict) --

            Describes the domain name system (DNS) records that you must add to the DNS of your registered domain to validate ownership for an Amazon Lightsail SSL/TLS certificate.

            • domainName (string) --

              The domain name of the certificate validation record. For example, example.com or www.example.com .

            • resourceRecord (dict) --

              An object that describes the DNS records to add to your domain's DNS to validate it for the certificate.

              • name (string) --

                The name of the record.

              • type (string) --

                The DNS record type.

              • value (string) --

                The value for the DNS record.

            • dnsRecordCreationState (dict) --

              An object that describes the state of the canonical name (CNAME) records that are automatically added by Lightsail to the DNS of the domain to validate domain ownership.

              • code (string) --

                The status code for the automated DNS record creation.

                Following are the possible values:

                • SUCCEEDED - The validation records were successfully added to the domain.
                • STARTED - The automatic DNS record creation has started.
                • FAILED - The validation records failed to be added to the domain.
              • message (string) --

                The message that describes the reason for the status code.

            • validationStatus (string) --

              The validation status of the record.

        • requestFailureReason (string) --

          The validation failure reason, if any, of the certificate.

          The following failure reasons are possible:

          • NO_AVAILABLE_CONTACTS - This failure applies to email validation, which is not available for Lightsail certificates.
          • ADDITIONAL_VERIFICATION_REQUIRED - Lightsail requires additional information to process this certificate request. This can happen as a fraud-protection measure, such as when the domain ranks within the Alexa top 1000 websites. To provide the required information, use the Amazon Web Services Support Center to contact Amazon Web Services Support.

          Note

          You cannot request a certificate for Amazon-owned domain names such as those ending in amazonaws.com, cloudfront.net, or elasticbeanstalk.com.

          • DOMAIN_NOT_ALLOWED - One or more of the domain names in the certificate request was reported as an unsafe domain by VirusTotal. To correct the problem, search for your domain name on the VirusTotal website. If your domain is reported as suspicious, see Google Help for Hacked Websites to learn what you can do. If you believe that the result is a false positive, notify the organization that is reporting the domain. VirusTotal is an aggregate of several antivirus and URL scanners and cannot remove your domain from a block list itself. After you correct the problem and the VirusTotal registry has been updated, request a new certificate. If you see this error and your domain is not included in the VirusTotal list, visit the Amazon Web Services Support Center and create a case.
          • INVALID_PUBLIC_DOMAIN - One or more of the domain names in the certificate request is not valid. Typically, this is because a domain name in the request is not a valid top-level domain. Try to request a certificate again, correcting any spelling errors or typos that were in the failed request, and ensure that all domain names in the request are for valid top-level domains. For example, you cannot request a certificate for example.invalidpublicdomain because invalidpublicdomain is not a valid top-level domain.
          • OTHER - Typically, this failure occurs when there is a typographical error in one or more of the domain names in the certificate request. Try to request a certificate again, correcting any spelling errors or typos that were in the failed request.
        • inUseResourceCount (integer) --

          The number of Lightsail resources that the certificate is attached to.

        • keyAlgorithm (string) --

          The algorithm used to generate the key pair (the public and private key) of the certificate.

        • createdAt (datetime) --

          The timestamp when the certificate was created.

        • issuedAt (datetime) --

          The timestamp when the certificate was issued.

        • issuerCA (string) --

          The certificate authority that issued the certificate.

        • notBefore (datetime) --

          The timestamp when the certificate is first valid.

        • notAfter (datetime) --

          The timestamp when the certificate expires.

        • eligibleToRenew (string) --

          The renewal eligibility of the certificate.

        • renewalSummary (dict) --

          An object that describes the status of the certificate renewal managed by Lightsail.

          • domainValidationRecords (list) --

            An array of objects that describe the domain validation records of the certificate.

            • (dict) --

              Describes the domain name system (DNS) records that you must add to the DNS of your registered domain to validate ownership for an Amazon Lightsail SSL/TLS certificate.

              • domainName (string) --

                The domain name of the certificate validation record. For example, example.com or www.example.com .

              • resourceRecord (dict) --

                An object that describes the DNS records to add to your domain's DNS to validate it for the certificate.

                • name (string) --

                  The name of the record.

                • type (string) --

                  The DNS record type.

                • value (string) --

                  The value for the DNS record.

              • dnsRecordCreationState (dict) --

                An object that describes the state of the canonical name (CNAME) records that are automatically added by Lightsail to the DNS of the domain to validate domain ownership.

                • code (string) --

                  The status code for the automated DNS record creation.

                  Following are the possible values:

                  • SUCCEEDED - The validation records were successfully added to the domain.
                  • STARTED - The automatic DNS record creation has started.
                  • FAILED - The validation records failed to be added to the domain.
                • message (string) --

                  The message that describes the reason for the status code.

              • validationStatus (string) --

                The validation status of the record.

          • renewalStatus (string) --

            The renewal status of the certificate.

            The following renewal status are possible:

            • PendingAutoRenewal - Lightsail is attempting to automatically validate the domain names of the certificate. No further action is required.
            • PendingValidation - Lightsail couldn't automatically validate one or more domain names of the certificate. You must take action to validate these domain names or the certificate won't be renewed. Check to make sure your certificate's domain validation records exist in your domain's DNS, and that your certificate remains in use.
            • Success - All domain names in the certificate are validated, and Lightsail renewed the certificate. No further action is required.
            • Failed - One or more domain names were not validated before the certificate expired, and Lightsail did not renew the certificate. You can request a new certificate using the CreateCertificate action.
          • renewalStatusReason (string) --

            The reason for the renewal status of the certificate.

          • updatedAt (datetime) --

            The timestamp when the certificate was last updated.

        • revokedAt (datetime) --

          The timestamp when the certificate was revoked. This value is present only when the certificate status is REVOKED .

        • revocationReason (string) --

          The reason the certificate was revoked. This value is present only when the certificate status is REVOKED .

        • tags (list) --

          The tag keys and optional values for the resource. For more information about tags in Lightsail, see the Amazon Lightsail Developer Guide.

          • (dict) --

            Describes a tag key and optional value assigned to an Amazon Lightsail resource.

            For more information about tags in Lightsail, see the Amazon Lightsail Developer Guide.

            • key (string) --

              The key of the tag.

              Constraints: Tag keys accept a maximum of 128 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

            • value (string) --

              The value of the tag.

              Constraints: Tag values accept a maximum of 256 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

        • supportCode (string) --

          The support code. Include this code in your email to support when you have questions about your Lightsail certificate. This code enables our support team to look up your Lightsail information more easily.

      • tags (list) --

        The tag keys and optional values for the resource. For more information about tags in Lightsail, see the Amazon Lightsail Developer Guide.

        • (dict) --

          Describes a tag key and optional value assigned to an Amazon Lightsail resource.

          For more information about tags in Lightsail, see the Amazon Lightsail Developer Guide.

          • key (string) --

            The key of the tag.

            Constraints: Tag keys accept a maximum of 128 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

          • value (string) --

            The value of the tag.

            Constraints: Tag values accept a maximum of 256 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

    • operations (list) --

      An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.

      • (dict) --

        Describes the API operation.

        • id (string) --

          The ID of the operation.

        • resourceName (string) --

          The resource name.

        • resourceType (string) --

          The resource type.

        • createdAt (datetime) --

          The timestamp when the operation was initialized (e.g., 1479816991.349 ).

        • location (dict) --

          The Amazon Web Services Region and Availability Zone.

          • availabilityZone (string) --

            The Availability Zone. Follows the format us-east-2a (case-sensitive).

          • regionName (string) --

            The Amazon Web Services Region name.

        • isTerminal (boolean) --

          A Boolean value indicating whether the operation is terminal.

        • operationDetails (string) --

          Details about the operation (e.g., Debian-1GB-Ohio-1 ).

        • operationType (string) --

          The type of operation.

        • status (string) --

          The status of the operation.

        • statusChangedAt (datetime) --

          The timestamp when the status was changed (e.g., 1479816991.349 ).

        • errorCode (string) --

          The error code.

        • errorDetails (string) --

          The error details.

Exceptions

  • Lightsail.Client.exceptions.ServiceException
  • Lightsail.Client.exceptions.InvalidInputException
  • Lightsail.Client.exceptions.NotFoundException
  • Lightsail.Client.exceptions.AccessDeniedException
  • Lightsail.Client.exceptions.UnauthenticatedException