acme.sh-dns
Automate DNS challenge for Let's Encrypt
TLDR
Issue a certificate using an automatic DNS API mode
Issue a wildcard certificate (denoted by an asterisk) using an automatic DNS API mode
Issue a certificate using a DNS alias mode
Issue a certificate while disabling automatic Cloudflare/Google DNS polling after the DNS record is added by specifying a custom wait time in seconds
Issue a certificate using a manual DNS mode
SYNOPSIS
Run acme.sh and set the environment variables for DNS API authentication
PARAMETERS
DNS API provider specific environment variables
These are specific to your DNS provider. Examples include:
- `DP_Id`
- `DP_Key`
- `Ali_Key`
- `Ali_Secret`
DESCRIPTION
The acme.sh-dns command is not a standalone Linux command, but rather a helper script or function intended for use with the acme.sh ACME (Automatic Certificate Management Environment) client. It simplifies the process of obtaining Let's Encrypt (or other ACME CA) certificates using DNS challenges. DNS challenges require you to prove control over a domain by adding specific TXT records to your DNS zone. This script provides a convenient way to automate these DNS record updates through various DNS providers' APIs.
Instead of manually creating and deleting DNS records during the certificate issuance process, acme.sh-dns can leverage your DNS provider's API to handle these updates automatically. It works in conjunction with acme.sh's --dns option. The specific usage varies based on the DNS provider you are using, requiring setting environment variables (or configuration files) to store the API credentials.
The command generally focuses on setting environment variables that are then used as options by the main acme.sh script. It aims to simplify the syntax when requesting a certificate using a DNS challenge.
CAVEATS
acme.sh-dns is not a command in itself but a convention of creating environment variables.
Configuration is heavily dependent on the DNS provider.
USAGE EXAMPLE (CLOUDFLARE)
To use Cloudflare's API with acme.sh:
`export CF_Key="your_cloudflare_api_key"`
`export CF_Email="your_cloudflare_email"`
Then you can issue a certificate:
`acme.sh --issue --dns dns_cf -d example.com -d www.example.com`
PROVIDER SPECIFIC DOCUMENTATION
Refer to the acme.sh documentation or your DNS provider's documentation for the specific environment variables required and any provider-specific instructions.
HISTORY
The acme.sh-dns method evolved as a way to streamline DNS-based certificate validation. Initially, users had to manually create and delete DNS TXT records. The introduction of API integration with DNS providers, coupled with helper scripts and functions, automated the process, reducing the complexity and potential for errors. It has gained popularity with the increasing adoption of Let's Encrypt and the need for automated certificate management.
SEE ALSO
acme.sh(1)