For those who use Letsencrypt's Certbot and want wildcard certificates on Namesilo, certificate creation and renewal is quite a pain since the main method is via the DNS records ACME TXT challenge. Namesilo offers no tooling to assist in automation of the letsencrypt renewal. But it does, however, have an API we can call. We use certbot's manual-auth-hook to perform our needed function (updating the TXT record and waiting until it is updated), and no longer have to do this manually.
Node.JS, NPM (Optionally) Bun or Deno, for bundling to a binary
npm install -g certbot-namesilo-hook
- Generate NameSilo API key (at https://www.namesilo.com/account/api-manager)
- In your terminal (or in your terminal profile (e.g. .bash_profile/.zprofile) ) do
export NAMESILO_KEY="<your_api_key>"
(add environment variable) - When you run certbot, add the options for
--manual-auth-hook
and--manual-cleanup-hook
to be certbot-namesilo-hook
pnpm i
(ornpm i
, whatever floats your boat)- Bundle this using bun or deno
- For example :
bun build --compile --target bun-linux-x64-baseline ./src/index.ts --outfile certbot-namesilo-hook-cli
- Change the target according to your server's arch
- copy
certbot-namesilo-hook-cli
to /usr/bin - create a script that you can use with the manual auth hook, name it whatever you want.
- e.g.
/usr/bin/certbot-namesilo-hook
#!/bin/bash certbot-namesilo-hook-cli --namesilo-key="mykey"
- e.g.
- of course don't forget to chmod 755.
- use it as the options for
--manual-auth-hook
and--manual-cleanup-hook
same as before
- For example :
certbot certonly --manual --email [email protected] \
--agree-tos \
--preferred-challenges=dns \
--manual-auth-hook certbot-namesilo-hook \
--manual-cleanup-hook certbot-namesilo-hook \
-d *.awesomewebsite.com -d awesomewebsite.com
Or when renewing
certbot renew --email [email protected] \
--agree-tos \
--preferred-challenges=dns \
--manual-auth-hook certbot-namesilo-hook \
--manual-cleanup-hook certbot-namesilo-hook \
-d *.awesomewebsite.com -d awesomewebsite.com
Stellar Lumens (XLM) :
GCVKPZQUDXWVNPIIMF3FXR6KWAOHTEWPZZM2AQE4J3TXR6ZDHXQHP5BQ
Cardano (ADA) :
addr1q9datt8urnyuc2059tquh59sva0pja7jqg4nfhnje7xcy6zpndeesglqkxhjvcgdu820flcecjzunwp6qen4yr92gm6smssug8