HTTPS Is Easy Part 1: Adding HTTPS
Indholdsfortegnelse:
- Forudsætninger
- Installer Certbot
- Generer Strong Dh (Diffie-Hellman) -gruppen
- At få et Let's Encrypt SSL-certifikat
- Automatisk fornyelse af Let's Encrypt SSL-certifikat
- Konklusion
Let's Encrypt er en gratis og åben certifikatmyndighed udviklet af Internet Security Research Group (ISRG). Certifikater udstedt af Let's Encrypt er tillid til næsten alle browsere i dag.
I denne tutorial vil vi forklare, hvordan man bruger Certbot-værktøjet til at få et gratis SSL-certifikat til Nginx på Debian 9. Vi viser også, hvordan man konfigurerer Nginx til at bruge SSL-certifikatet og aktivere HTTP / 2.
Forudsætninger
Sørg for, at følgende forudsætninger er opfyldt, inden du fortsætter med denne tutorial:
- Logget ind som bruger med sudo-privilegier. Har et domænenavn, der peger på din offentlige server-IP. Vi bruger
example.com
Har Nginx installeret ved at følge disse instruktionerDu har en serverblok til dit domæne. Du kan følge disse instruktioner for detaljer om, hvordan du opretter en.
Installer Certbot
Certbot er et fuldt udstyret og brugervenligt værktøj, der kan automatisere opgaverne til at få og forny Let's Let's Encrypt SSL-certifikater og konfigurere webservere til at bruge certifikaterne. Certbot-pakken er inkluderet i Debian's standardlager.
Opdater pakkelisten, og installer certbot-pakken:
sudo apt update
sudo apt install certbot
Generer Strong Dh (Diffie-Hellman) -gruppen
Diffie – Hellman key exchange (DH) er en metode til sikker udveksling af kryptografiske nøgler over en usikret kommunikationskanal. Vi vil generere et nyt sæt 2048 bit DH-parametre for at styrke sikkerheden:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Hvis du kan lide, kan du ændre størrelsen op til 4096 bit, men i dette tilfælde kan genereringen tage mere end 30 minutter afhængigt af systemets entropi.
At få et Let's Encrypt SSL-certifikat
For at få et SSL-certifikat til vores domæne vil vi bruge Webroot-plugin, der fungerer ved at oprette en midlertidig fil til validering af det anmodede domæne i
${webroot-path}/.well-known/acme-challenge
bibliotek. Let's Encrypt-serveren fremsætter HTTP-anmodninger til den midlertidige fil for at validere, at det anmodede domæne løses til den server, hvor certbot kører.
Vi kortlægger alle HTTP-anmodninger om
.well-known/acme-challenge
til et enkelt bibliotek,
/var/lib/letsencrypt
.
De følgende kommandoer opretter mappen og gør den skrivbar til Nginx-serveren.
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
For at undgå duplikering af kode skal du oprette følgende to kodestykker, der vil blive inkluderet i alle vores Nginx-serverblokfiler.
Åbn din teksteditor og opret det første uddrag,
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; }
Opret det andet uddrag
ssl.conf
der indeholder de flishuggere, der er anbefalet af Mozilla, aktiverer OCSP-hæftning, HTTP Strict Transport Security (HSTS) og håndhæver få sikkerhedsfokuserede
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;
Når det er gjort, skal du åbne domæneserverblokafilen og inkludere
letsencrypt.conf
kodestykket som vist nedenfor:
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; }
Aktivér den nye serverblok ved at oprette et symbolsk link til det
sites-enabled
bibliotek:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Genstart Nginx-tjenesten for at ændringerne får virkning:
sudo systemctl restart nginx
Du kan nu køre Certbot med webroot-plugin og få SSL-certifikatfiler ved at udstede:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Hvis SSL-certifikatet er opnået med succes, udskrives følgende meddelelse på din terminal:
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:
Rediger derefter domæneserverblokken som følger:
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 }
Med ovenstående konfiguration tvinger vi HTTPS og omdirigerer fra www til ikke-www version.
Genindlæs Nginx-tjenesten, så ændringerne træder i kraft:
Automatisk fornyelse af Let's Encrypt SSL-certifikat
Let's Encrypt's certifikater er gyldige i 90 dage. For automatisk at fornye certifikaterne, før de udløber, opretter certbot-pakken en cronjob, der kører to gange om dagen og automatisk forny ethvert certifikat 30 dage før det udløber.
Da vi bruger certbot webroot-plug-in, når certifikatet er fornyet, er vi også nødt til at genindlæse nginx-tjenesten. Tilføj -
--renew-hook "systemctl reload nginx"
til filen
/etc/cron.d/certbot
, så den ser sådan ud:
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"
Test den automatiske fornyelsesproces ved at køre denne kommando:
sudo certbot renew --dry-run
Hvis der ikke er nogen fejl, betyder det, at fornyelsesprocessen var vellykket.
Konklusion
At have et SSL-certifikat er et must i dag. Det sikrer dit websted, øger SERP-placering og giver dig mulighed for at aktivere HTTP / 2 på din webserver.
I denne tutorial anvendte du Let's Encrypt-klienten, certbot til at generere SSL-certifikater til dit domæne. Du har også oprettet Nginx-kodestykker for at undgå duplikering af kode og konfigureret Nginx til at bruge certifikaterne. I slutningen af selvstudiet har du konfigureret en cronjob til automatisk fornyelse af certifikater.
nginx debian lad os kryptere certbot sslDette indlæg er en del af Sådan installeres LEMP Stack i Debian 9-serien.
Andre indlæg i denne serie:
• Sådan installeres MariaDB på Ubuntu 18.04 • Sådan installeres Nginx på Debian 9 • Sådan installeres PHP på Debian 9 • Sådan konfigureres Nginx-serverblokke på Debian 9 • Sikker Nginx med Let's Encrypt på Debian 9Sikker nginx med lad os kryptere på centos 7

I denne tutorial giver vi trin for trin instruktioner om, hvordan du sikrer din Nginx med Let's Encrypt ved hjælp af certbot-værktøjet på CentOS 7
Sikker nginx med lad os kryptere på ubuntu 18.04

Let's Encrypt er en gratis og åben certifikatmyndighed udviklet af Internet Security Research Group. I denne tutorial giver vi en trinvis vejledning om, hvordan du sikrer din Nginx med Let's Encrypt ved hjælp af certbot-værktøjet på Ubuntu 18.04
Sikker nginx med lad os kryptere på debian 10 linux

Denne tutorial viser, hvordan du installerer et gratis Let's Encrypt SSL-certifikat på Debian 10, Buster, der kører Nginx som en webserver. Vi viser også, hvordan Nginx konfigureres til at bruge SSL-certifikatet og aktivere HTTP / 2.