![]() |
|
Guide BillionMail SSL Certificate Won't Apply: Fix Let's Encrypt Errors - Printable Version +- AdminsForum (https://adminsforum.com) +-- Forum: Free & open-source control panels (https://adminsforum.com/Forum-free-open-source-control-panels) +--- Forum: aaPanel (https://adminsforum.com/Forum-aapanel) +---- Forum: aaPanel Guides & Tutorials (https://adminsforum.com/Forum-aapanel-guides-tutorials) +----- Forum: aaPanel BillionMail Guides (https://adminsforum.com/Forum-aapanel-billionmail-guides) +----- Thread: Guide BillionMail SSL Certificate Won't Apply: Fix Let's Encrypt Errors (/Thread-guide-billionmail-ssl-certificate-won-t-apply-fix-let-s-encrypt-errors) |
BillionMail SSL Certificate Won't Apply: Fix Let's Encrypt Errors - JAY - 10-23-2026 BillionMail SSL certificate won't apply: fix Let's Encrypt errors You click Apply Certificate under Settings > Common Settings and get a red box full of error text instead of a green "Certificate Valid". This guide explains the common Let's Encrypt errors in plain language and how to fix each one. For the basic setup, see BillionMail SSL and hostname fix first. How Let's Encrypt checks your server Before it issues a free certificate, Let's Encrypt visits your mail host name (for example Code: bm.example.comThis is the real error from our test server (host and IP replaced): Code: Failed to apply for SSL certificate: error: one or more domains had a problem:
[bm.example.com] invalid authorization: acme: error: 400 ::
urn:ietf:params:acme:error:connection :: YOUR_IP: Fetching
http://bm.example.com/.well-known/acme-challenge/...: Connection refusedRead it from the end: Code: Fetching http://bm.../.well-known/acme-challenge/...: Connection refusedWhat the error means
Step 1: Check the DNS Code: dig +short A bm.example.com
curl -4 -s https://ifconfig.me ; echoStep 2: Check who answers on port 80 On the server: Code: ss -tlnp | grep -E ':80 |:8080 '
Code: curl -I http://bm.example.com/Step 3: Give BillionMail port 80 In your BillionMail folder: Code: cd /www/dk_project/dk_app/billionmail/billionmail_XXXX # your folder
grep -E '^HTTP_PORT|^HTTPS_PORT' .env
cp .env .env.bak
sed -i 's/^HTTP_PORT=.*/HTTP_PORT=80/' .env
docker compose up -dCode: docker compose up -dIf aaPanel's web server already uses port 80 for your websites, BillionMail can't have it too. Your choices:
Step 4: After it works You should see Certificate Valid with an expiry date about 90 days away. BillionMail renews it automatically, as long as port 80 stays reachable. Reload the dashboard; the browser warning is gone. Mail apps connecting on 993, 465 and 587 should then see a trusted certificate too. Keep the private key private. The SSL page shows the private key in a text box. Never post it on a forum or in a screenshot. Still failing? Post in this section with the last line of the error, the output of Code: ss -tlnp | grep -E ':80 'Sources: Let's Encrypt: challenge types · Let's Encrypt: rate limits · Let's Encrypt: CAA More BillionMail troubleshooting
Applies to BillionMail 4.9 installed through aaPanel or the install script, October 2026. |