@Neilpang I'm a big fan of the acme.sh client, but the more familiar I become with it, questions start to pop up. I was going to PM you about these, but other community members may benefit from these questions, and your responses so I thought it better to submit my queries in the public forum space. First some platform details:
# acme.sh --version
https://github.com/acmesh-official/acme.sh
v2.8.8
# freebsd-version
12.2-RC3
Can you please clarify the points below for me?
--dns
When using the DNS API, shell variables set for the DNS provider are saved for later reuse when the first certificate is issued.
Using the Cloudflare example provided:
acme.sh --issue --dns dns_cf -d example.com -d www.example.com
The
CF_KeyandCF_EmailorCF_TokenandCF_Account_IDwill be saved in~/.acme.sh/account.confand will be reused when needed.
Because these variables have been saved, I'd just like to confirm that --dns then becomes redundant when issuing subsequent certificates? So, for example --dns dns_cf is then implied in the command below:
acme.sh --issue -d sub.example.com
Adding it in has no effect either:
acme.sh --issue --dns mumbo-jumbo -d sub.example.com
If I want to change DNS provider, I must then edit ~/.acme.sh/account.conf directly.
--accountemail
In the example for an advanced installation of acme.sh, --accountemail is the email used to register an account with Let's Encrypt, and where renewal notices will be sent.
Is there a way to test this functionality without waiting 60 days?
My query arises because it's not clear to me where the email details are stored from the installation and how it's used. For example, if I install acme.sh as follows:
./acme.sh --install --config-home /config --accountemail "myemail@example.com"
I see evidence of the /config, but not the email when I issue the command below.
# cat ~/.acme.sh/acme.sh.csh
setenv LE_WORKING_DIR "/root/.acme.sh"
setenv LE_CONFIG_HOME "/config"
alias acme.sh "/root/.acme.sh/acme.sh --config-home '/config'"
There's no evidence of the email in ~/.acme.sh/account.conf either, or in cron.
# crontab -l
59 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" --config-home "/config" > /dev/null