HTTPS Is Easy Part 1: Adding HTTPS
Indholdsfortegnelse:
- Forudsætninger
- Installation af Certbot
- Generering af stærk Dh (Diffie-Hellman) gruppe
- At få et Let's Encrypt SSL-certifikat
- Automatisk fornyelse af Let's Encrypt SSL-certifikat
- Konklusion
Let's Encrypt er en gratis, automatiseret og åben certifikatmyndighed udviklet af Internet Security Research Group (ISRG), der leverer gratis SSL-certifikater.
Certifikater udstedt af Let's Encrypt er tillid til alle større browsere og er gyldige i 90 dage fra udstedelsesdatoen.
I denne tutorial giver vi trin for trin instruktioner om, hvordan du installerer et gratis Let's Encrypt SSL-certifikat på CentOS 8, der kører Nginx som en webserver. Vi viser også, hvordan Nginx konfigureres til at bruge SSL-certifikatet og aktivere HTTP / 2.
Forudsætninger
Før du fortsætter, skal du sørge for, at du har opfyldt følgende forudsætninger:
- Du har et domænenavn, der peger på din offentlige IP. Vi bruger
example.com
Du har Nginx installeret på din CentOS-server. Din firewall er konfigureret til at acceptere forbindelser på porte 80 og 443.
Installation af Certbot
Certbot er et gratis kommandolinjeværktøj, der forenkler processen til at hente og forny Let's Let's Encrypt SSL-certifikater fra og automatisk aktivere HTTPS på din server.
Certbot-pakken er ikke inkluderet i standard CentOS 8-oplagrene, men den kan downloades fra sælgerens websted.
Kør følgende
wget
kommando som root- eller sudo-bruger for at downloade certbot-scriptet til
/usr/local/bin
biblioteket:
sudo wget -P /usr/local/bin
Når download er afsluttet, skal du gøre filen eksekverbar:
sudo chmod +x /usr/local/bin/certbot-auto
Generering af stærk Dh (Diffie-Hellman) gruppe
Diffie – Hellman key exchange (DH) er en metode til sikker udveksling af kryptografiske nøgler over en usikret kommunikationskanal.
Generer et nyt sæt 2048 bit DH-parametre ved at skrive følgende kommando:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
At få et Let's Encrypt SSL-certifikat
For at få et SSL-certifikat til domænet 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.
For at gøre det lettere skal vi kortlægge 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.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp nginx /var/lib/letsencrypt
sudo 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 Nginx-serverblokfiler:
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;
Uddraget ovenfor inkluderer de flishuggere, der er anbefalet af Mozilla, aktiverer OCSP-hæftning, HTTP Strict Transport Security (HSTS) og håndhæver få sikkerhedsfokuserede
Når uddragene er oprettet, skal du åbne
letsencrypt.conf
og inkludere kodestykket
letsencrypt.conf
, som vist nedenfor:
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
Genindlæs Nginx-konfigurationen, så ændringerne træder i kraft:
sudo systemctl reload nginx
Kør certbot-værktøjet med webroot-plugin for at få SSL-certifikatfiler til dit domæne:
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åberåber
certbot
, installerer værktøjet de manglende afhængigheder.
Når SSL-certifikatet er opnået med succes, udskriver certbot følgende meddelelse:
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:
Nu hvor du har certifikatfilerne, kan du redigere din domæneserverblok 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 ovenstående konfiguration tvinger vi HTTPS og omdirigerer www til non www versionen.
Endelig genindlæser Nginx-tjenesten for ændringer at træde i kraft:
sudo systemctl reload nginx
Åbn nu dit websted ved hjælp af
https://
, og du vil bemærke et grønt låsikon.
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, skal du oprette en cronjob, der kører to gange om dagen, og automatisk forny ethvert certifikat 30 dage før udløbet.
Brug
crontab
kommandoen til at oprette en ny cronjob:
sudo crontab -e
Indsæt 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"
Gem og luk filen.
For at teste fornyelsesprocessen kan du bruge certbot-kommandoen efterfulgt af -
--dry-run
:
sudo certbot renew --dry-run
Hvis der ikke er nogen fejl, betyder det, at testfornyelsesprocessen var vellykket.
Konklusion
I denne tutorial har vi vist dig, hvordan du bruger Let's Encrypt-klienten, certbot til at downloade SSL-certifikater til dit domæne. Vi har også oprettet Nginx-kodestykker for at undgå duplisering af kode og konfigureret Nginx til at bruge certifikaterne. I slutningen af selvstudiet har vi oprettet en cronjob til automatisk fornyelse af certifikater.
Besøg deres dokumentationsside for at lære mere om Certbot.
nginx centos lad os kryptere certbot sslSikker 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å debian 9

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.
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