Week 7, continued
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, 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.
Denne tutorial forklarer, hvordan du installerer et gratis Let's Encrypt SSL-certifikat på CentOS 8, der kører Apache som en webserver. Vi bruger certbot-værktøjet til at få og forny certifikaterne.
Forudsætninger
Sørg for, at følgende forudsætninger er opfyldt, før du fortsætter:
- Har et domænenavn, der peger på din offentlige server-IP. Vi bruger
example.com
Apache er installeret og kører på din server med en virtuel vært, der er konfigureret til dit domæne. Porte 80 og 443 er åbne i din firewall.
Installer følgende pakker, der kræves til en SSL-krypteret webserver:
sudo dnf install mod_ssl openssl
Når mod_ssl-pakken er installeret, skal den oprette en selvsigneret nøgle og certifikatfiler til localhost. Hvis filerne ikke automatisk oprettes, kan du oprette dem ved hjælp af kommandoen
openssl
:
sudo openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes \
-out /etc/pki/tls/certs/localhost.crt \
-keyout /etc/pki/tls/private/localhost.key
Installer 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
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. Generer et nyt sæt 2048 bit DH-parametre for at styrke sikkerheden:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Du kan ændre størrelsen op til 4096 bit, men genereringen kan tage mere end 30 minutter afhængigt af systemets entropi.
At få et Let's Encrypt SSL-certifikat
For at få et SSL-certifikat for domænet bruger vi 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 opsætningen mere enkel vil vi kortlægge alle HTTP-anmodninger om
.well-known/acme-challenge
til et enkelt bibliotek,
/var/lib/letsencrypt
.
Kør følgende kommandoer for at oprette kataloget og gøre det skrivbart for Apache-serveren.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
For at undgå duplikering af kode og gøre konfigurationen mere vedligeholdelig skal du oprette følgende to konfigurationsuddrag:
/etc/httpd/conf.d/letsencrypt.conf
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM # Requires Apache 2.4.36 & OpenSSL 1.1.1 SSLProtocol -all +TLSv1.3 +TLSv1.2 SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1 # Older versions # SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" # Requires Apache >= 2.4.11 SSLSessionTickets Off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
Uddraget ovenfor bruger de flishuggere, der er anbefalet af Cipherli.st. Det muliggør OCSP hæftning, HTTP Strict Transport Security (HSTS), Dh-nøgle og håndhæver få sikkerhedsfokuserede
Genindlæs Apache-konfigurationen, så ændringerne træder i kraft:
sudo systemctl reload
Nu kan du køre certbot script med webroot plugin og hente SSL-certifikatfiler:
sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Efter 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-01-26. 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" - 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:
Nu, hvor alt er konfigureret, rediger din domæne-virtuelle host-konfiguration som følger:
/etc/httpd/conf.d/example.com.conf
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
Konfigurationen ovenfor tvinger HTTPS og omdirigerer fra www til ikke-www version. Det muliggør også HTTP / 2, hvilket vil gøre dine websteder hurtigere og mere robuste. Bliv fri for at justere konfigurationen efter dine behov.
Genstart Apache-tjenesten:
sudo systemctl restart
Du kan nu åbne dit websted ved hjælp af
https://
, og du vil se 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, opretter vi en cronjob, der kører to gange om dagen og automatisk forny ethvert certifikat 30 dage før udløbet.
Kør følgende kommando for at oprette en ny cronjob, der vil fornye certifikatet og genstarte Apache:
echo "0 0, 12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto -q renew --renew-hook \"systemctl reload httpd\"" | sudo tee -a /etc/crontab > /dev/null
Hvis du vil teste fornyelsesprocessen, skal du bruge certbot-kommandoen efterfulgt af -
--dry-run
:
sudo /usr/local/bin/certbot-auto renew --dry-run
Hvis der ikke er nogen fejl, betyder det, at fornyelsesprocessen var vellykket.
Konklusion
I denne tutorial talte vi om, hvordan vi bruger Let's Encrypt-klientcertbot på CentOS til at få SSL-certifikater til dine domæner. Du har også vist dig, hvordan man konfigurerer Apache til at bruge certifikaterne og konfigurere en cronjob til automatisk fornyelse af certifikater.
Hvis du vil vide mere om Certbot-scriptet, skal du besøge Certbot-dokumentationen.
apache centos lad os kryptere certbot sslSikker apache med lad os kryptere på centos 7

I denne tutorial vil vi dække de trin, der er nødvendige for at installere et gratis Let's Encrypt SSL-certifikat på en CentOS 7-server, der kører Apache som en webserver.
Sikker apache med lad os kryptere på debian 9

Denne tutorial vil guide dig gennem processen med at få et gratis Let's Encrypt ved hjælp af certbot-værktøjet på Debian 9. Vi viser også, hvordan du konfigurerer Apache til at bruge det nye SSL-certifikat og aktivere HTTP / 2
Sikker apache med lad os kryptere på ubuntu 18.04

I denne tutorial giver vi trin for trin instruktioner om, hvordan du sikrer din Apache med Let's Encrypt ved hjælp af certbot-værktøjet på Ubuntu 18.04.