Настройка HTTPS на Synology NAS с помощью Let's Encrypt | Synology
Innholdsfortegnelse:
- Forutsetninger
- Installerer Certbot
- Genererer Strong Dh (Diffie-Hellman) -gruppen
- Innhenting av et Let's Encrypt SSL-sertifikat
- Forny automatisk Let's Encrypt SSL-sertifikat
- Konklusjon
Let's Encrypt er en gratis, automatisert og åpen sertifikatmyndighet utviklet av Internet Security Research Group (ISRG) som gir gratis SSL-sertifikater.
Sertifikater utstedt av Let's Encrypt er klarert av alle større nettlesere og er gyldige i 90 dager fra utstedelsesdatoen.
I denne opplæringen vil vi gi trinnvise instruksjoner om hvordan du installerer et gratis Let's Encrypt SSL-sertifikat på CentOS 8 som kjører Nginx som en webserver. Vi viser også hvordan du konfigurerer Nginx til å bruke SSL-sertifikatet og aktivere HTTP / 2.
Forutsetninger
Før du fortsetter, må du forsikre deg om at du har oppfylt følgende forutsetninger:
- Du har et domenenavn som peker til din offentlige IP. Vi bruker
example.com
Du har Nginx installert på CentOS-serveren. Brannmuren din er konfigurert til å godta tilkoblinger på port 80 og 443.
Installerer Certbot
Certbot er et gratis kommandolinjeverktøy som forenkler prosessen for å skaffe og fornye Let's Encrypt SSL-sertifikater fra og automatisk aktivere HTTPS på serveren din.
Certbot-pakken er ikke inkludert i standard CentOS 8-depotene, men den kan lastes ned fra leverandørens nettsted.
Kjør følgende
wget
kommando som root- eller sudo-bruker for å laste ned certbot-skriptet til
/usr/local/bin
katalogen:
sudo wget -P /usr/local/bin
Når nedlastingen er fullført, gjør filen kjørbar:
sudo chmod +x /usr/local/bin/certbot-auto
Genererer Strong Dh (Diffie-Hellman) -gruppen
Diffie – Hellman nøkkelutveksling (DH) er en metode for sikker utveksling av kryptografiske nøkler over en usikret kommunikasjonskanal.
Generer et nytt sett med 2048 bit DH-parametere ved å skrive inn følgende kommando:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Innhenting av et Let's Encrypt SSL-sertifikat
For å få et SSL-sertifikat for domenet, bruker vi Webroot-plugin som fungerer ved å lage en midlertidig fil for å validere det forespurte domenet i katalogen
${webroot-path}/.well-known/acme-challenge
. Let's Encrypt-serveren sender HTTP-forespørsler til den midlertidige filen for å bekrefte at det forespurte domenet løses til serveren der certbot kjører.
For å gjøre det enklere skal vi kartlegge alle HTTP-forespørsler for
.well-known/acme-challenge
til en enkelt katalog,
/var/lib/letsencrypt
.
Følgende kommandoer lager katalogen og gjør den skrivbar for Nginx-serveren.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp nginx /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
For å unngå duplisering av kode, oppretter du følgende to utdrag som skal inkluderes i alle Nginx-serverblokkfilene:
sudo mkdir /etc/nginx/snippets
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; 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=63072000" always; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
Utdraget over inkluderer flishuggerne som er anbefalt av Mozilla, aktiverer OCSP-stifting, HTTP Strict Transport Security (HSTS) og håndhever få sikkerhetsfokuserte
Når kodebitene er opprettet, åpner du domeneserverblokken og inkluderer
letsencrypt.conf
utdraget, som vist nedenfor:
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
Last inn Nginx-konfigurasjonen på nytt for at endringene skal tre i kraft:
sudo systemctl reload nginx
Kjør certbot-verktøyet med webroot-plugin for å skaffe SSL-sertifikatfilene for domenet ditt:
sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Hvis dette er første gang du påkaller
certbot
, installerer verktøyet de manglende avhengighetene.
Når SSL-sertifikatet er oppnådd, vil certbot skrive ut følgende melding:
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 2020-03-12. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Nå som du har sertifikatfilene, kan du redigere domeneserverblokken din som følger:
/etc/nginx/conf.d/example.com.conf
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 }
Med konfigurasjonen over tvinger vi HTTPS og omdirigerer www til non www versjonen.
Til slutt, last inn Nginx-tjenesten på nytt for at endringene skal tre i kraft:
sudo systemctl reload nginx
Nå åpner du nettstedet ditt ved å bruke
https://
, så vil du merke et grønt låseikon.
Forny automatisk Let's Encrypt SSL-sertifikat
Let's Encrypts sertifikater er gyldige i 90 dager. Hvis du vil fornye sertifikatene automatisk før de går ut, oppretter du en cronjob som kjøres to ganger om dagen og forny automatisk et hvilket som helst sertifikat 30 dager før utløpet.
Bruk
crontab
kommandoen til å lage en ny cronjob:
sudo crontab -e
Lim inn følgende linje:
0 */12 * * * root test -x /usr/local/bin/certbot-auto -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && /usr/local/bin/certbot-auto -q renew --renew-hook "systemctl reload nginx"
Lagre og lukk filen.
For å teste fornyelsesprosessen kan du bruke certbot-kommandoen etterfulgt av -
--dry-run
bryteren:
sudo certbot renew --dry-run
Hvis det ikke er noen feil, betyr det at testfornyelsesprosessen var vellykket.
Konklusjon
I denne opplæringen har vi vist deg hvordan du bruker Let's Encrypt-klienten, certbot til å laste ned SSL-sertifikater for domenet ditt. Vi har også laget Nginx-utdrag for å unngå duplisering av kode og konfigurert Nginx til å bruke sertifikatene. På slutten av opplæringen har vi satt opp en cronjob for automatisk fornyelse av sertifikater.
Hvis du vil lære mer om Certbot, kan du gå til dokumentasjonssiden deres.
nginx centos la oss kryptere certbot sslSikre nginx med la oss kryptere på centos 7

I denne opplæringen gir vi trinnvise instruksjoner om hvordan du sikrer din Nginx med Let's Encrypt ved å bruke certbot-verktøyet på CentOS 7
Sikre nginx med la oss kryptere på debian 9

I denne opplæringen vil vi forklare hvordan du bruker Certbot-verktøyet for å skaffe et gratis SSL-sertifikat for Nginx på Debian 9. Vi vil også vise hvordan du konfigurerer Nginx til å bruke SSL-sertifikatet og aktivere HTTP / 2.
Sikre nginx med la oss kryptere på ubuntu 18.04

Let's Encrypt er en gratis og åpen sertifikatmyndighet utviklet av Internet Security Research Group. I denne opplæringen vil vi gi trinnvise instruksjoner om hvordan du sikrer din Nginx med Let's Encrypt ved å bruke certbot-verktøyet på Ubuntu 18.04