Technical Anshu
Tutorials Blog
🔒 Free HTTPS

Free HTTPS With Lets Encrypt in Nginx Proxy Manager and How Renewal Works

The padlock used to cost money and a weekend of file-wrangling. With NPM it is a dropdown, a checkbox and ninety seconds — and it renews itself.

✍️ Technical Anshu🐳 Docker⏱️ 3 minutes per domain
🎥 Watch the full video — the complete Nginx Proxy Manager install shown step by step

Every proxy host you create deserves HTTPS, and with Let's Encrypt there is no cost excuse left: the certificates are free, trusted by every browser, and NPM does the entire exchange for you. This page explains what actually happens when you click 'request a certificate', what the three switches under it do, and the one requirement — a reachable port 80 — whose absence explains almost every renewal failure you will ever meet.

SSL tab — the settings that matter (illustrative)
Certificate: Request a new SSL Certificate Force SSL: ON HTTP/2 Support: ON HSTS Enabled: ON (once you are sure)
✔ Certificate life: 90 days
✔ NPM renews automatically before expiry
✘ Valid only while DNS points at you and port 80 answers
Four lines that turn a plain address into a trusted one. The last line is the condition nobody reads until a renewal fails.
1

How the free certificate is actually issued

When you request a certificate, NPM contacts Let's Encrypt and says 'this server controls app.yourdomain.com'. Let's Encrypt proves it the practical way — it asks your server, over the public internet on port 80, to show a one-time token at a special address. Your server shows it, ownership is proven, and the certificate is issued on the spot. This is called the HTTP-01 challenge, and it explains two non-negotiable requirements: DNS must already point at your server, and port 80 must reach NPM from the internet. Fail either one and the request fails — the error is in the setup, never in Let's Encrypt.

2

Request it the right way

  1. Open your proxy host, go to the SSL tab.
  2. SSL Certificate: Request a new SSL Certificate.
  3. Enable Force SSL and HTTP/2 Support.
  4. Agree to the Let's Encrypt Terms of Service and Save.
  5. Reload the site — the browser should now show the padlock on https.

Do this only after the plain host already works. HTTPS on a broken host gives you a broken host with a certificate, and twice the places to look for the fault.

3

Force SSL, HTTP/2 and HSTS in plain words

Force SSL redirects every http visitor to https automatically — turn it on, always; without it the unencrypted door stays open beside the encrypted one. HTTP/2 Support lets browsers load a page's many files more efficiently over the encrypted connection — on, no downside. HSTS tells browsers 'never speak to this site unencrypted again, for months'. That is genuinely stronger protection, but it is a promise you cannot quickly take back — enable it only once a service is settled and its certificate renewals are proven, not on day one of an experiment.

4

The 90-day life and honest renewal story

Let's Encrypt certificates live for 90 days — deliberately short, so that automation does the work and lost keys expire quickly. NPM renews them automatically, typically about a month before expiry, using the same port-80 proof. Renewal failures therefore have boring causes: DNS was changed, the router forwarding was removed, port 80 got blocked by an ISP or a firewall tidy-up. If a certificate ever approaches expiry, check those three before anything exotic. NPM also emails the account address about certificate problems — one more reason the admin email you set at first login should be a real mailbox.

5

Wildcard certificates and the DNS challenge

One certificate can cover every subdomain — *.yourdomain.com — but Let's Encrypt will not issue a wildcard from the port-80 proof. NPM supports the alternative DNS challenge: you give it an API token for your DNS provider, it writes a temporary TXT record to prove control, and the wildcard is issued. Worth it once you pass a handful of services; unnecessary ceremony for your first two or three hosts, where one certificate each is simpler to understand and to fix.

🔴 Never pay for a basic certificate again, and never accept a setup where renewal is a manual calendar task. If a guide tells you to copy certificate files by hand every 90 days, it is teaching you 2010. Automation or nothing.

🎥 Watch the Complete Video

In the video you can watch a certificate being issued in real time — including the exact moment the padlock appears. It is faster than reading about it.

▶️ Watch Full Video
❓ Common Questions (FAQ)

Are Lets Encrypt certificates trusted everywhere?

Yes. They are trusted by all modern browsers and operating systems, and used by hundreds of millions of sites. For a normal website or service, there is no practical difference from a paid certificate.

My certificate request failed with an internal error. Why?

Almost always one of three things: DNS does not point at your server yet, port 80 does not reach NPM from the internet, or the domain was rate-limited by earlier failed attempts. Fix the first two, wait, and retry.

Do I need HTTPS for services only used on my home network?

On a trusted LAN it is optional, and many people skip it internally. The moment a service is reachable from the internet, HTTPS stops being optional — logins and data cross networks you do not control.

This guide is based on the Technical Anshu Nginx Proxy Manager video • Stuck on any step? Ask in the video comments — you will get an answer there 🙏