serverless plugin to manage the certificate of your lambdas custom domain (API Gateway=
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
Readme.md
index.js
package-lock.json
package.json

Readme.md

serverless-certificate-creator

serverless npm version MIT licensed Codacy Badge npm downloads

This serverless plugin creates certificates that you need for your custom domains in API Gateway. Use this in your CICD flow to automatically create a certificate, create the necessary route53 recordsets to validate the certificate with Dns-Validation and finally wait until the certificate has been validated.

Usage

    npm i serverless-certificate-creator --save-dev

open serverless.yml and add the following:

    plugins:
    - serverless-certificate-creator

    ...

    custom:
        customCertificate:
            certificateName: 'abc.somedomain.io' //required
            idempotencyToken: 'abcsomedomainio' //optional
            hostedZoneName: 'somedomain.io.' //required if hostedZoneId is not set
            hostedZoneId: 'XXXXXXXXX' //required if hostedZoneName is not set
            writeCertInfoToFile: false // optional default is false. if you set it to true you will get a new file called cert-info.yml (after executing serverless create-cert), that contains certificate info that you can use in your deploy pipeline
            region: eu-west-1 // optional - default is us-east-1 which is required for custom api gateway domains of Type Edge (default)

now you can run:

    serverless create-cert

Combine with serverless-domain-manager

If you combine this plugin with serverless-domain-manager you can automate the complete process of creating a custom domain with a certificate. I found serverless-domain-manager very useful but i also wanted to be able to automatically create the certificate for the newly generated custom domain.

Example

Install the plugins:

    npm i serverless-certificate-creator --save-dev
    npm i serverless-domain-manager --save-dev

Open serverless.yml and add the following:

    plugins:
    - serverless-certificate-creator
    - serverless-domain-manager

    ...

    custom:
        customDomain:
            domainName: abc.somedomain.io
            certificateName: 'abc.somedomain.io'
            basePath: ''
            stage: ${self:provider.stage}
            createRoute53Record: true
        customCertificate:
            certificateName: 'abc.somedomain.io' //required
            idempotencyToken: 'abcsomedomainio' //optional
            hostedZoneName: 'somedomain.io.' //required if hostedZoneId is not set
            hostedZoneId: 'XXXXXXXXX' //required if hostedZoneName is not set
            region: eu-west-1 // optional - default is us-east-1 which is required for custom api gateway domains of Type Edge (default)

Now you can run:

    serverless create-cert
    serverless create_domain