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). Certifikater udstedt af Let's Encrypt er gyldige i 90 dage fra udstedelsesdatoen og er tillid til alle de store browsere i dag.
I denne tutorial dækker vi 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. Vi bruger certbot-værktøjet til at hente og fornye Let's Encrypt-certifikater.
Forudsætninger
Sørg for, at du har opfyldt følgende forudsætninger, før du fortsætter med denne tutorial:
- Har et domænenavn, der peger på din offentlige server-IP. Vi bruger
example.com
Apache er installeret og kører på din server. Har den virtuelle Apache-vært 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:
Installer Certbot
Certbot er et værktøj, der forenkler processen til at få SSL-certifikater fra Let's Encrypt og automatisk aktivere HTTPS på din server.
Certbot-pakken er tilgængelig til installation fra EPEL. Hvis EPEL-arkivet ikke er installeret på dit system, kan du installere det ved hjælp af følgende kommando:
sudo yum install epel-release
Når EPEL-arkivet er aktiveret, skal du installere certbot-pakken ved at skrive:
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 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.
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
.
Kør thr efter 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 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
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
Genindlæs Apache-konfigurationen, så ændringerne træder i kraft:
sudo systemctl reload
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-12-07. 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:
CentOS 7 leveres med Apache version 2.4.6, som ikke inkluderer
SSLOpenSSLConfCmd
direktivet. Dette direktiv er kun tilgængeligt på Apache 2.4.8 senere, og det bruges til konfiguration af OpenSSL-parametre såsom Diffie – Hellman key exchange (DH).
Vi bliver nødt til at oprette en ny kombineret fil ved hjælp af Let's Encrypt SSL-certifikat og den genererede DH-fil. For at gøre dette, skriv:
cat /etc/letsencrypt/live/example.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/example.com/cert.dh.pem
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 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/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com 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/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com 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/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com 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/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.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.
Genstart Apache-tjenesten, så ændringerne træder i kraft:
sudo systemctl restart
Du kan nu åbne 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, opretter vi en cronjob, der kører to gange om dagen og automatisk forny ethvert certifikat 30 dage før det udløber.
Kør
crontab
kommandoen for at oprette en ny cronjob, der vil fornye certifikatet, oprette en ny kombineret fil inklusive DH-nøglen og genstarte apache:
sudo crontab -e
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
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 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 centos lad os kryptere certbot sslDette indlæg er en del af Install LAMP Stack i CentOS 7-serien.
Andre indlæg i denne serie:
• Sådan installeres Apache på CentOS 7 • Installer MySQL på CentOS 7 • Sådan installeres Apache virtuelle værter på CentOS 7 • Sikker Apache med Let's Encrypt på CentOS 7Sikker 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
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.