Issue Certificate
Call the issue command with no arguments for full help.
$ ./ashbox.sh issue
ashbox.sh issue <options> <domain1> ...
=======================================
Issue and Fetch a new SSL cert for the specified domains.
WEB ROOT MODE
This will use the .well-known folder system to validate domain ownership.
--webroot /path/to/public/www
DNS MODE
This uses the remote API on DNS providers to automatically set some
TXT records used for ownership validation.
--dns <dnsapi>
Each of the DNS supported by acme.sh have their variables you set to make
their script work. Paste those variables into the `.cfg/account.conf`
file.
Example, to make dns_porkbun work:
PORKBUN_API_KEY='...'
PORKBUN_SECRET_API_KEY='...'
DNS Mode Documentation to find the --dns name and variables you need
for your DNS provider:
https://github.com/acmesh-official/acme.sh/wiki/dnsapi
DNS ALIASES (Ashbox Shortcuts)
--digitalocean (--dns dns_dgon)
--porkbun (--dns dns_porkbun)
Using DNS API Mode. --digitalocean is an alias --dns dns_dgon. It can take the same arguments as acme.sh for choosing the validation method, such as webroot.
$ ./ashbox.sh issue domain.tld --digitalocean
Remove Certificate
By default they are left laying around for use until they expire, the clean option removes it now.
$ ./ashbox.sh remove domain.tld --clean
List Certificates
The default is acme.sh raw output. There is also CSV, SSV, TSV, and JSON.
$ ./ashbox.sh list --json
[
{ "Main_Domain": "atl.pegasusgate.net", "KeyLength": "ec-256", "SAN_Domains": "no", "Profile": "-", "CA": "LetsEncrypt.org", "Created": "2026-05-21T04:20:30Z", "Renew": "2026-06-19T04:20:30Z" },
{ "Main_Domain": "", "KeyLength": "", "SAN_Domains": "-", "Profile": "", "CA": "LetsEncrypt.org", "Created": "-", "Renew": "" },
{ "Main_Domain": "", "KeyLength": "", "SAN_Domains": "-", "Profile": "", "CA": "LetsEncrypt.org", "Created": "-", "Renew": "" },
{ "Main_Domain": "", "KeyLength": "", "SAN_Domains": "-", "Profile": "", "CA": "LetsEncrypt.org", "Created": "-", "Renew": "" },
{ "Main_Domain": "pegasusgate.net", "KeyLength": "ec-256", "SAN_Domains": "*.pegasusgate.net", "Profile": "-", "CA": "LetsEncrypt.org", "Created": "2026-05-22T04:20:36Z", "Renew": "2026-06-20T04:20:36Z" },
{ "Main_Domain": "rip.pegasusgate.net", "KeyLength": "ec-256", "SAN_Domains": "no", "Profile": "-", "CA": "LetsEncrypt.org", "Created": "2026-06-06T04:21:32Z", "Renew": "2026-06-06T04:21:32Z" },
{ "Main_Domain": "", "KeyLength": "", "SAN_Domains": "-", "Profile": "", "CA": "LetsEncrypt.org", "Created": "-", "Renew": "" },
{ "Main_Domain": "squirrelshaterobots.com", "KeyLength": "ec-256", "SAN_Domains": "no", "Profile": "-", "CA": "LetsEncrypt.org", "Created": "2026-05-14T04:20:35Z", "Renew": "2026-06-12T04:20:35Z" },
{ "Main_Domain": "webroot.pegasusgate.net", "KeyLength": "ec-256", "SAN_Domains": "no", "Profile": "-", "CA": "ZeroSSL.com", "Created": "2026-06-05T04:20:30Z", "Renew": "2026-07-04T04:20:30Z" }
]
$ ./ashbox.sh list --csv
Main_Domain,KeyLength,SAN_Domains,Profile,CA,Created,Renew
atl.pegasusgate.net,"ec-256",no,-,LetsEncrypt.org,2026-05-21T04:20:30Z,2026-06-19T04:20:30Z
"",-,LetsEncrypt.org,-
"",-,LetsEncrypt.org,-
"",-,LetsEncrypt.org,-
pegasusgate.net,"ec-256",*.pegasusgate.net,-,LetsEncrypt.org,2026-05-22T04:20:36Z,2026-06-20T04:20:36Z
rip.pegasusgate.net,"ec-256",no,-,LetsEncrypt.org,2026-06-06T04:21:32Z,2026-06-06T04:21:32Z
"",-,LetsEncrypt.org,-
squirrelshaterobots.com,"ec-256",no,-,LetsEncrypt.org,2026-05-14T04:20:35Z,2026-06-12T04:20:35Z
webroot.pegasusgate.net,"ec-256",no,-,ZeroSSL.com,2026-06-05T04:20:30Z,2026-07-04T04:20:30Z