Problem binding to port 80: Could not bind to IPv4 or IPv6 SSL / TLS Origin: Network OSI layer 4 · Transport Last updated 4 Nov 2026

Certbot: Problem binding to port 80: Could not bind to IPv4 or IPv6 (standalone authenticator)

certbot --standalone needs to listen on port 80 for the HTTP-01 challenge but another process (Nginx, Apache) already holds it.

Exact message you may see Problem binding to port 80: Could not bind to IPv4 or IPv6Could not bind TCP port 80 because it is already in use by another process on this systemProblem binding to port 443: Could not bind to IPv4 or IPv6certbot standalone port 80 already in use
Seen on: SSL Linux

Meaning

Standalone mode starts its own tiny web server. Either stop the web server briefly, switch to --webroot or the --nginx / --apache plugin, or use pre/post hooks to stop and start the service. Renewal fails silently later if the authenticator stays standalone with the web server running.

Common causes

  • Nginx/Apache already listening on port 80
  • Standalone authenticator saved in renewal config
  • Docker proxy publishing 80
  • Another certbot process running
  • Firewall not the cause (bind error is local)

⚡ Quick fix

  1. Use --webroot -w /var/www/html or --nginx instead
  2. Or add hooks: --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
  3. Find the owner: ss -ltnp | grep ':80 '

Detailed fix by platform

Linux

  1. sudo ss -ltnp | grep ':80 ' ; sudo certbot certonly --webroot -w /var/www/html -d example.com

How to diagnose

  1. Listener — Who owns port 80?
  2. Authenticator — standalone/webroot?
  3. Renewal — Config updated?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Network. Errors that are often confused with or caused by this one (click to open):

AH01909: server certificate does NOT include an ID which matches the server name — Apache: [ssl:warn] AH01909: example.com:443:0 server certificate does NOT include an ID which matches the server name (SSL / TLS)AH01909: server certi…Challenge failed for domain — Let’s Encrypt / Certbot: Challenge failed for domain example.com — Invalid response from http://example.com/.well-known/acme-challenge/x: 404 (SSL / TLS)Challenge failed for …Could not automatically find a matching server block — Certbot: Could not automatically find a matching server block for example.com. Set the `server_name` directive to use the Nginx installer (SSL / TLS)Could not automatical…Incorrect TXT record found at _acme-challenge — Certbot: DNS problem: NXDOMAIN looking up TXT for _acme-challenge.example.com / Incorrect TXT record (SSL / TLS)Incorrect TXT record …Invalid response from .well-known/acme-challenge: 404 — Certbot: Detail: Invalid response from http://example.com/.well-known/acme-challenge/abc: 404 (SSL / TLS)Invalid response from…The following certs could not be renewed — Certbot: Failed to renew certificate example.com with error — The following certs could not be renewed: /etc/letsencrypt/live/example.com/fullchain.pem (failure) (SSL / TLS)The following certs c…Timeout during connect (likely firewall problem) — Let's Encrypt: Fetching http://example.com/.well-known/acme-challenge/token: Timeout during connect (likely firewall problem) (SSL / TLS)Timeout during connec…Problem b…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.