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 certifikatmyndighed oprettet af Internet Security Research Group (ISRG). Det giver gratis SSL-certifikater via en fuldautomatisk proces designet til at eliminere manuel certifikatoprettelse, validering, installation og fornyelse.
Certifikater udstedt af Let's Encrypt er tillid til alle de store browsere i dag.
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.
Forudsætninger
Sørg for, at du har opfyldt følgende forudsætninger, før du fortsætter med denne tutorial:
- Domænenavn, der peger på din offentlige server-IP. Vi bruger
example.com
Du har Apache installeret med en virtuel apache-vært til dit domæne.
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. Certbot-pakken er inkluderet i Ubuntu'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 vil, 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 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
.
Følgende kommandoer opretter mappen og gør den skrivbar til Apache-serveren.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp www-data /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
For at undgå duplikering af kode skal du oprette følgende to konfigurationsuddrag:
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:AES256+EECDH:AES256+EDH 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, aktiverer OCSP-hæftning, HTTP Strict Transport Security (HSTS) og håndhæver få sikkerhedsfokuserede
Før du aktiverer konfigurationsfilerne, skal du sørge for, at både
mod_headers
og
mod_headers
er aktiveret ved at udstede:
sudo a2enmod ssl
sudo a2enmod headers
Aktivér derefter SSL-konfigurationsfiler ved at køre følgende kommandoer:
sudo a2enconf letsencrypt
sudo a2enconf ssl-params
Aktivér HTTP / 2-modulet, som vil gøre dine websteder hurtigere og mere robuste:
sudo a2enmod
Genindlæs Apache-konfigurationen, så ændringerne træder i kraft:
sudo systemctl reload apache2
Nu kan vi køre Certbot-værktøjet med webroot-plugin og få SSL-certifikatfiler ved at skrive:
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, 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 2018-10-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" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Nu når du har certifikatfilerne, rediger din konfiguration af din virtuelle host-domæne som følger:
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 ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/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 ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/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 ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/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 ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/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
Med konfigurationen ovenfor tvinger vi HTTPS og omdirigerer fra www til ikke-www version. Bliv fri for at justere konfigurationen efter dine behov.
Genopdater Apache-tjenesten, så ændringerne træder i kraft:
sudo systemctl reload apache2
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 certbot-pakken en cronjob, der kører to gange om dagen og forny automatisk ethvert certifikat 30 dage før det udløber.
Når certifikatet er fornyet, skal vi også genindlæse Apache-tjenesten. Tilføj -
--renew-hook "systemctl reload apache2"
til filen
/etc/cron.d/certbot
, så den ser ud som følger:
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 apache2"
For at teste fornyelsesprocessen kan du bruge certbot -
--dry-run
kontakten:
sudo certbot renew --dry-run
Hvis der ikke er nogen fejl, betyder det, at fornyelsesprocessen var vellykket.
Konklusion
I denne tutorial anvendte du Let's Encrypt-klientcertbot til at downloade SSL-certifikater til dit domæne. Du har også oprettet Apache-kodestykker for at undgå duplikering af kode og konfigureret Apache til at bruge certifikaterne. I slutningen af selvstudiet har du konfigureret en cronjob til automatisk fornyelse af certifikater.
apache ubuntu lad os kryptere certbot sslDette indlæg er en del af how-to-install-lamp-stack-on-ubuntu-18-04-serien.
Andre indlæg i denne serie:
• Sådan installeres Apache på Ubuntu 18.04 • Sådan installeres Apache virtuelle værter på Ubuntu 18.04 • Sikker Apache med Let's Encrypt på Ubuntu 18.04 • Sådan installeres MySQL på Ubuntu 18.04 • Sådan installeres PHP på Ubuntu 18.04Sikker 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å centos 8

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