Preparation
To obtain and install a Wildcard certificate, we will use the ACME.sh utility, which supports Let’s Encrypt out of the box.
Connect via SSH to your server and run the following commands:
curl https://get.acme.sh | sh
You will see a success message and the .acme.sh folder will appear in your home directory
root@server:~# curl https://get.acme.sh | sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1032 0 1032 0 0 16125 0 --:--:-- --:--:-- --:--:-- 16380 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 216k 100 216k 0 0 4326k 0 --:--:-- --:--:-- --:--:-- 4326k [Wed 15 Nov 2023 10:12:34 AM EET] Installing from online archive. [Wed 15 Nov 2023 10:12:34 AM EET] Downloading https://github.com/acmesh-official/acme.sh/archive/master.tar.gz [Wed 15 Nov 2023 10:12:35 AM EET] Extracting master.tar.gz [Wed 15 Nov 2023 10:12:35 AM EET] Installing to /root/.acme.sh [Wed 15 Nov 2023 10:12:35 AM EET] Installed to /root/.acme.sh/acme.sh [Wed 15 Nov 2023 10:12:35 AM EET] Installing alias to '/root/.bashrc' [Wed 15 Nov 2023 10:12:35 AM EET] OK, Close and reopen your terminal to start using acme.sh [Wed 15 Nov 2023 10:12:35 AM EET] Installing cron job no crontab for root no crontab for root [Wed 15 Nov 2023 10:12:35 AM EET] Good, bash is found, so change the shebang to use bash as preferred. [Wed 15 Nov 2023 10:12:36 AM EET] OK [Wed 15 Nov 2023 10:12:36 AM EET] Install success!
Next you need to register an account for ZeroSSL
root@server:~/.acme.sh# ./acme.sh --register-account -m [email protected]
[Wed 15 Nov 2023 10:17:52 AM EET] No EAB credentials found for ZeroSSL, let’s get one
[Wed 15 Nov 2023 10:17:53 AM EET] Registering account: https://acme.zerossl.com/v2/DV90
[Wed 15 Nov 2023 10:18:14 AM EET] Registered
[Wed 15 Nov 2023 10:18:14 AM EET] ACCOUNT_THUMBPRINT=’………………………………………..’
Now let’s create an application for a certificate
root@server:~/.acme.sh# ./acme.sh --issue -d example.com -d *.example.com --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
Output like:
[Wed 15 Nov 2023 10:18:20 AM EET] Using CA: https://acme.zerossl.com/v2/DV90 [Wed 15 Nov 2023 10:18:20 AM EET] Creating domain key [Wed 15 Nov 2023 10:18:20 AM EET] The domain key is here: /root/.acme.sh/example.com_ecc/example.com.key [Wed 15 Nov 2023 10:18:20 AM EET] Multi domain='DNS:example.com,DNS:*.example.com' [Wed 15 Nov 2023 10:18:20 AM EET] Getting domain auth token for each domain [Wed 15 Nov 2023 10:19:31 AM EET] Getting webroot for domain='example.com' [Wed 15 Nov 2023 10:19:31 AM EET] Getting webroot for domain='*.example.com' [Wed 15 Nov 2023 10:19:32 AM EET] Add the following TXT record: [Wed 15 Nov 2023 10:19:32 AM EET] Domain: '_acme-challenge.example.com' [Wed 15 Nov 2023 10:19:32 AM EET] TXT value: '_QY3s2nbgTfAU_mdrwZHzVAk-NmXBzWYSrAR0gk7eQM' [Wed 15 Nov 2023 10:19:32 AM EET] Please be aware that you prepend _acme-challenge. before your domain [Wed 15 Nov 2023 10:19:32 AM EET] so the resulting subdomain will be: _acme-challenge.example.com [Wed 15 Nov 2023 10:19:32 AM EET] Add the following TXT record: [Wed 15 Nov 2023 10:19:32 AM EET] Domain: '_acme-challenge.example.com' [Wed 15 Nov 2023 10:19:32 AM EET] TXT value: '1HVmv-vynO5CKFD8-QN_I8eRweF9XNFo1q4KaG-Y-_0' [Wed 15 Nov 2023 10:19:32 AM EET] Please be aware that you prepend _acme-challenge. before your domain [Wed 15 Nov 2023 10:19:32 AM EET] so the resulting subdomain will be: _acme-challenge.example.com [Wed 15 Nov 2023 10:19:32 AM EET] Please add the TXT records to the domains, and re-run with --renew. [Wed 15 Nov 2023 10:19:32 AM EET] Please add '--debug' or '--log' to check more details. [Wed 15 Nov 2023 10:19:32 AM EET] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh
Setting DNS records
Now you need to find the DNS record control panel of your hosting provider and add the required record there.
For example GoDaddy
Check out GoDaddy’s Domain Portfolio.
Select a screenshot that displays an icon with three icons for selecting domain editing options. Domain editing options from your domain and select Edit DNS. You may need to scroll down to edit DNS.
Select Add new entry.
Select TXT from the Type menu.
Enter the details of your new TXT entry:
Name: _acme-challenge.example.com
Value: _QY3s2nbgTfAU_mdrwZHzVAk-NmXBzWYSrAR0gk7eQM
Note: In example output above 2 DNS records with the same name. Therefore, you need to make 2 identical records but with different values
Name: _acme-challenge.example.com
Value: 1HVmv-vynO5CKFD8-QN_I8eRweF9XNFo1q4KaG-Y-_0
Click Save to add a new entry.
Once you have added the TXT record, run the following command:
root@server:~/.acme.sh# ./acme.sh --renew -d example.com -d *.example.com --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
Output like:
[Wed 15 Nov 2023 10:24:12 AM EET] The domain 'example.com' seems to have a ECC cert already, lets use ecc cert. [Wed 15 Nov 2023 10:24:12 AM EET] Renew: 'example.com' [Wed 15 Nov 2023 10:24:12 AM EET] Renew to Le_API=https://acme.zerossl.com/v2/DV90 [Wed 15 Nov 2023 10:24:13 AM EET] Using CA: https://acme.zerossl.com/v2/DV90 [Wed 15 Nov 2023 10:24:13 AM EET] Multi domain='DNS:example.com,DNS:*.example.com' [Wed 15 Nov 2023 10:24:13 AM EET] Getting domain auth token for each domain [Wed 15 Nov 2023 10:24:13 AM EET] Verifying: example.com [Wed 15 Nov 2023 10:24:14 AM EET] Processing, The CA is processing your order, please just wait. (1/30) [Wed 15 Nov 2023 10:24:18 AM EET] Success [Wed 15 Nov 2023 10:24:18 AM EET] Verifying: *.example.com [Wed 15 Nov 2023 10:24:31 AM EET] Processing, The CA is processing your order, please just wait. (1/30) [Wed 15 Nov 2023 10:24:47 AM EET] Success [Wed 15 Nov 2023 10:24:47 AM EET] Verify finished, start to sign. [Wed 15 Nov 2023 10:24:47 AM EET] Lets finalize the order. [Wed 15 Nov 2023 10:24:47 AM EET] Le_OrderFinalize='https://acme.zerossl.com/v2/DV90/order/m-VCTRPJqXDDtBsVb1ws0g/finalize' [Wed 15 Nov 2023 10:25:03 AM EET] Order status is processing, lets sleep and retry. [Wed 15 Nov 2023 10:25:03 AM EET] Retry after: 15 [Wed 15 Nov 2023 10:25:19 AM EET] Polling order status: https://acme.zerossl.com/v2/DV90/order/m-VCTRPJqXDDtBsVb1ws0g [Wed 15 Nov 2023 10:25:38 AM EET] Order status is processing, lets sleep and retry. [Wed 15 Nov 2023 10:25:38 AM EET] Retry after: 15 .... [Wed 15 Nov 2023 10:30:20 AM EET] Polling order status: https://acme.zerossl.com/v2/DV90/order/m-VCTRPJqXDDtBsVb1ws0g [Wed 15 Nov 2023 10:30:51 AM EET] Downloading cert. [Wed 15 Nov 2023 10:30:51 AM EET] Le_LinkCert='https://acme.zerossl.com/v2/DV90/cert/KtVem_uK9H-Rz_mkyM_EkQ' [Wed 15 Nov 2023 10:30:51 AM EET] Cert success. -----BEGIN CERTIFICATE----- there certificate data -----END CERTIFICATE----- [Wed 15 Nov 2023 10:30:51 AM EET] Your cert is in: /root/.acme.sh/example.com_ecc/vpharm.com.ua.cer [Wed 15 Nov 2023 10:30:51 AM EET] Your cert key is in: /root/.acme.sh/example.com_ecc/vpharm.com.ua.key [Wed 15 Nov 2023 10:30:51 AM EET] The intermediate CA cert is in: /root/.acme.sh/example.com_ecc/ca.cer [Wed 15 Nov 2023 10:30:51 AM EET] And the full chain certs is there: /root/.acme.sh/example.com_ecc/fullchain.cer
All done.
Let’s sum it up
Using the Let’s Encrypt service and the acme.sh or certbot utilities, you can quickly and easily obtain a free Wildcard SSL certificate for all your domains and their subdomains. The certificate will be valid for three months, however, it will not be difficult to renew it by following our instructions.
Similar Posts:
- How to install / renew zimbra letsencrypt certificate after 30 sep 2021
- How to renew letsencrypt ssl certificate 2023
- Howto Renew Zimbra Letsencrypt SSL certificate
- How to check mailserver ssl certificate and expiration date
- Renew Let’sencrypt certificate on Carbonio CE