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-07-20T04:20:33Z", "Renew": "2026-08-18T04:20:33Z" },
{ "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-07-21T04:20:38Z", "Renew": "2026-08-19T04:20:38Z" },
{ "Main_Domain": "rip.pegasusgate.net", "KeyLength": "ec-256", "SAN_Domains": "no", "Profile": "-", "CA": "LetsEncrypt.org", "Created": "2026-07-22T04:20:06Z", "Renew": "2026-07-22T04:20:06Z" },
{ "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-07-13T04:20:34Z", "Renew": "2026-08-11T04:20:34Z" },
{ "Main_Domain": "webroot.pegasusgate.net", "KeyLength": "ec-256", "SAN_Domains": "no", "Profile": "-", "CA": "ZeroSSL.com", "Created": "2026-07-04T04:20:52Z", "Renew": "2026-08-02T04:20:52Z" }
]
$ ./ashbox.sh list --csv
Main_Domain,KeyLength,SAN_Domains,Profile,CA,Created,Renew
atl.pegasusgate.net,"ec-256",no,-,LetsEncrypt.org,2026-07-20T04:20:33Z,2026-08-18T04:20:33Z
"",-,LetsEncrypt.org,-
"",-,LetsEncrypt.org,-
"",-,LetsEncrypt.org,-
pegasusgate.net,"ec-256",*.pegasusgate.net,-,LetsEncrypt.org,2026-07-21T04:20:38Z,2026-08-19T04:20:38Z
rip.pegasusgate.net,"ec-256",no,-,LetsEncrypt.org,2026-07-22T04:20:06Z,2026-07-22T04:20:06Z
"",-,LetsEncrypt.org,-
squirrelshaterobots.com,"ec-256",no,-,LetsEncrypt.org,2026-07-13T04:20:34Z,2026-08-11T04:20:34Z
webroot.pegasusgate.net,"ec-256",no,-,ZeroSSL.com,2026-07-04T04:20:52Z,2026-08-02T04:20:52Z