Tasuta SSL Let's Encryptiga¶
Let's Encrypt väljastab tasuta HTTPS-sertifikaate, mis uuenevad automaatselt. See juhend katab Nginxi seadistuse certbot-iga Ubuntu/Debiani serveris.
Eeltingimused
- Server avaliku IP-ga ja juurkasutaja (
sudo) õigused - Domeen, mille A-kirje osutab juba sellele serverile
- Pordid 80 ja 443 avatud (tulemüüris ja vajadusel Cloudflare'is)
Cloudflare proxy
Kui domeen on Cloudflare'is proxied (oranž pilv), ei jõua Let's Encrypti HTTP-kontroll otse serverini. Lülita kirje sertifikaadi loomise ajaks ajutiselt DNS only (hall) peale või kasuta DNS-väljakutset (vt allpool).
1. Paigalda certbot¶
sudo apt update
sudo apt install certbot python3-certbot-nginx -y 2. Loo sertifikaat¶
sudo certbot --nginx -d näide.ee -d www.näide.ee Certbot:
- Küsib su e-posti (uuendamise hoiatuste jaoks).
- Palub nõustuda tingimustega.
- Seadistab Nginxi automaatselt HTTPS-i jaoks.
HTTP → HTTPS ümbersuunamine
Kui certbot küsib, kas suunata HTTP automaatselt HTTPS-ile, vali jah (2).
3. Kontrolli automaatset uuendamist¶
Sertifikaadid kehtivad 90 päeva. Certbot lisab uuendamise ajastatud tööna — kontrolli, et see töötab (päriselt midagi ei uuendata, vaid tehakse proov):
sudo certbot renew --dry-run Kui näed „Congratulations, all simulated renewals succeeded“, on kõik korras.
4. Nginxi näidiskonfiguratsioon¶
Certbot teeb selle ise, kuid nii näeb tulemus umbes välja:
server {
listen 80;
server_name näide.ee www.näide.ee;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name näide.ee www.näide.ee;
ssl_certificate /etc/letsencrypt/live/näide.ee/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/näide.ee/privkey.pem;
root /var/www/näide.ee;
index index.php index.html;
} Peale muudatusi testi ja laadi Nginx uuesti:
sudo nginx -t && sudo systemctl reload nginx DNS-väljakutse (kui port 80 pole kättesaadav)¶
Kui kasutad Cloudflare proxy't ja ei taha seda välja lülitada, kasuta DNS-väljakutset (vajab Cloudflare API-token'it):
sudo apt install python3-certbot-dns-cloudflare -y
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials ~/.secrets/cloudflare.ini \
-d näide.ee -d "*.näide.ee" See meetod lubab ka metamärgi (wildcard) sertifikaate (*.näide.ee).
Tõrge: „Timeout during connect“
- Port 80 ei ole avatud või Cloudflare proxy varjab serverit → kasuta DNS-väljakutset.
- Kontrolli, et A-kirje osutab tõesti sellele serverile.
- Kontrolli tulemüüri:
sudo ufw allow 80,443/tcp.
Kontroll-loend¶
- Certbot paigaldatud
- Sertifikaat loodud
-
certbot renew --dry-runõnnestub - HTTP suunab HTTPS-ile
- SSL Labsis (ssllabs.com/ssltest) vähemalt A-hinne