Šalu na stranu, osigurajte se na vrijeme!
Sadržaj:
- Preduvjeti
- Instalirajte Certbot
- Stvaranje snažne Dh (Diffie-Hellman) grupe
- Dobivanje šifriramo SSL certifikat Let's Šifriraj
- Automatska obnova Let's Šifriraj SSL certifikat
- Zaključak
Let's Encrypt je besplatno i otvoreno tijelo certifikata koje je razvila Internet Security Research Group (ISRG). Certifikati izdani Let's Encrypt vjeruju danas gotovo svim preglednicima.
U ovom ćemo vodiču dati korak po korak upute kako osigurati svoj Nginx programom Šifrirajmo pomoću alata certbot na Ubuntu 18.04.
Preduvjeti
Prije nastavka s ovim vodičem provjerite jeste li ispunili sljedeće preduvjete:
- Ime domene pokazuje na IP vašeg javnog poslužitelja. U ovom ćemo udžbeniku koristiti
example.com
. Instalirali ste Nginx slijedeći ove upute. Za vašu domenu imate blok poslužitelja. Možete slijediti ove upute za detalje o tome kako ih stvoriti.
Instalirajte Certbot
Certbot je potpuno opremljen i jednostavan za korištenje alat koji može automatizirati zadatke za dobivanje i obnavljanje Let's Šifriraj SSL certifikate i konfiguriranje web poslužitelja za korištenje certifikata. Paket certbot nalazi se u zadanim Ubuntu spremištima.
Ažurirajte popis paketa i instalirajte certbot paket:
sudo apt update
sudo apt install certbot
Stvaranje snažne Dh (Diffie-Hellman) grupe
Razmjena ključeva Diffie-Hellman (DH) metoda je sigurne razmjene kriptografskih ključeva preko nezaštićenog komunikacijskog kanala. Generirat ćemo novi skup 2048 bitnih DH parametara za jačanje sigurnosti:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Ako želite, možete promijeniti veličinu do 4096 bita, ali u tom slučaju generacija može potrajati više od 30 minuta, ovisno o entropiji sustava.
Dobivanje šifriramo SSL certifikat Let's Šifriraj
Za dobivanje SSL certifikata za našu domenu koristit ćemo Webroot dodatak koji djeluje stvaranjem privremene datoteke za provjeru tražene domene u
${webroot-path}/.well-known/acme-challenge
direktoriju
${webroot-path}/.well-known/acme-challenge
. Poslužitelj Let's Encrypt postavlja HTTP zahtjeve u privremenu datoteku kako bi potvrdio da se zatražena domena rješava na poslužitelju na kojem se pokreće certbot.
Da bismo to pojednostavili,
/var/lib/letsencrypt
ćemo sve HTTP zahtjeve za
.well-known/acme-challenge
u jedan direktorij,
/var/lib/letsencrypt
.
Sljedeće naredbe stvorit će direktorij i učiniti ga zapisljivim za Nginx poslužitelj.
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
Da biste izbjegli dupliciranje koda, stvorite sljedeća dva isječka koja ćemo uključiti u sve naše blok datoteke Nginx poslužitelja.
Otvorite uređivač teksta i stvorite prvi isječak,
letsencrypt.conf
:
sudo nano /etc/nginx/snippets/letsencrypt.conf
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
Izradite drugi isječak
ssl.conf
koji uključuje
ssl.conf
koje je preporučila Mozilla, omogućava OCSP spajanje, HTTP strogu sigurnost u prometu (HSTS) i nameće nekoliko HTTP zaglavlja usmjerenih na sigurnost.
sudo nano /etc/nginx/snippets/ssl.conf
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload"; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
Nakon izrade isječaka otvorite blok poslužitelja domene i uključite isječak
letsencrypt.conf
kao što je prikazano u nastavku:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
Za omogućavanje nove datoteke blok poslužitelja potrebno je stvoriti simboličku vezu iz datoteke na direktorij koji
sites-enabled
, a koji Nginx čita prilikom pokretanja:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Ponovno pokrenite Nginx uslugu da bi promjene stupile na snagu:
sudo systemctl restart nginx
Sada možete pokrenuti Certbot s dodatkom webroot i dobiti datoteke SSL certifikata izdavanjem:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Ako je SSL certifikat uspješno dobiven, certbot će ispisati sljedeću poruku:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2018-07-28. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Sada kada imate datoteke certifikata, možete urediti blok poslužitelja domene na sljedeći način:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; #… other code }
S gornjom konfiguracijom forsiramo HTTPS i preusmjeravamo s www na verziju koja nije www.
Učitajte ponovo Nginx uslugu da bi promjene stupile na snagu:
Automatska obnova Let's Šifriraj SSL certifikat
Neka šifriraju potvrde vrijede 90 dana. Da bi automatski obnavljao certifikate prije njihovog isteka, certbot paket stvara cronjob koji se izvodi dva puta dnevno i automatski će obnoviti bilo koji certifikat 30 dana prije njegovog isteka.
Budući da koristimo dodatak certbot webroot nakon obnavljanja certifikata, moramo ponovno učitati nginx uslugu. Dodajte
--renew-hook "systemctl reload nginx"
u
/etc/cron.d/certbot
datoteku tako da izgleda ovako:
sudo nano /etc/cron.d/certbot
/etc/cron.d/certbot
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload nginx"
Da biste testirali postupak obnove, možete koristiti certbot
--dry-run
sušenje
--dry-run
:
sudo certbot renew --dry-run
Ako nema pogrešaka, to znači da je proces obnove bio uspješan.
Zaključak
U ovom su vodiču koristili klijent Let's Encrypt, certbot za preuzimanje SSL certifikata za vašu domenu. Također ste stvorili isječke Nginx-a kako biste izbjegli dupliciranje koda i konfigurirali Nginx za korištenje certifikata. Na kraju udžbenika postavili ste posao za automatsku obnovu certifikata.
nginx ubuntu šifrirajmo certbot sslOvaj je post dio serije kako instalirati-lemp-stock-on-ubuntu-18-04.
Ostali postovi u ovoj seriji:
• Kako instalirati Nginx na Ubuntu 18.04 • Kako postaviti blokove poslužitelja Nginx na Ubuntu 18.04 • Osigurajte Nginx pomoću Šifrirajmo na Ubuntu 18.04 • Kako instalirati MySQL na Ubuntu 18.04 • Kako instalirati PHP na Ubuntu 18.04Osigurajte nginx s šifriranjem na centos 7

U ovom ćemo vodiču dati korak po korak upute kako osigurati svoj Nginx pomoću alata Encrypt pomoću alata certbot na CentOS 7
Osigurajte nginx s šifriranjem na debianu 9

U ovom ćemo vodiču objasniti kako koristiti alat Certbot za dobivanje besplatnog SSL certifikata za Nginx na Debianu 9. Također ćemo pokazati kako konfigurirati Nginx za korištenje SSL certifikata i omogućiti HTTP / 2.
Osigurajte nginx s šifriranjem na ubuntu 16.04

U ovom ćemo vodiču dati detaljne upute o tome kako osigurati svoj Nginx pomoću alata Encrypt pomoću alata certbot na Ubuntu 16.04