Маша и Медведь - Цирк, да и только? (Серия 67)
Innehållsförteckning:
- förutsättningar
- Installera Certbot
- Generera Strong Dh (Diffie-Hellman) -gruppen
- Få ett SSL-certifikat för Let's Encrypt
- Automatisk förnyelse av Let's Encrypt SSL-certifikat
- Slutsats
Let's Encrypt är en gratis, automatiserad och öppen certifikatutfärdare utvecklad av Internet Security Research Group (ISRG) som tillhandahåller gratis SSL-certifikat.
Certifikat som utfärdats av Let's Encrypt är betrodda av alla större webbläsare och gäller i 90 dagar från utfärdatum.
Denna handledning förklarar hur man installerar ett gratis Let's Encrypt SSL-certifikat på CentOS 8 som kör Apache som en webbserver. Vi använder certbotverktyget för att få och förnya certifikaten.
förutsättningar
Se till att följande förutsättningar uppfylls innan du fortsätter:
- Har ett domännamn som pekar på din offentliga server-IP. Vi använder exempel.com. Apache är installerat och körs på din server med en virtuell värd konfigurerad för ditt domän. Port 80 och 443 är öppna i din brandvägg.
Installera följande paket som krävs för en SSL-krypterad webbserver:
sudo dnf install mod_ssl openssl
När mod_ssl-paketet är installerat bör det skapa en självsignerad nyckel och certifikatfiler för localhost. Om filerna inte automatiskt skapas kan du skapa dem med kommandot
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
Installera Certbot
Certbot är ett gratis kommandoradsverktyg som förenklar processen för att få och förnya Let's Encrypt SSL-certifikat från och automatiskt aktivera HTTPS på din server.
Certbot-paketet ingår inte i de vanliga CentOS 8-lagren, men det kan laddas ner från leverantörens webbplats.
Kör följande
wget
kommando som root- eller sudo-användare för att ladda ner certbot-skriptet till
/usr/local/bin
katalogen:
sudo wget -P /usr/local/bin
När nedladdningen är klar gör filen körbar:
sudo chmod +x /usr/local/bin/certbot-auto
Generera Strong Dh (Diffie-Hellman) -gruppen
Diffie – Hellman nyckelutbyte (DH) är en metod för att säkert utbyta kryptografiska nycklar över en osäker kommunikationskanal. Generera en ny uppsättning 2048-bitars DH-parametrar för att stärka säkerheten:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Du kan ändra storlek upp till 4096 bitar, men genereringen kan ta mer än 30 minuter beroende på systemets entropi.
Få ett SSL-certifikat för Let's Encrypt
För att få ett SSL-certifikat för domänen kommer vi att använda Webroot-plugin som fungerar genom att skapa en tillfällig fil för validering av den begärda domänen i
${webroot-path}/.well-known/acme-challenge
katalogen. Let's Encrypt-servern gör HTTP-förfrågningar till den tillfälliga filen för att bekräfta att den begärda domänen löses till servern där certbot körs.
För att göra installationen enklare kommer vi att kartlägga alla HTTP-förfrågningar för
.well-known/acme-challenge
till en enda katalog,
/var/lib/letsencrypt
.
Kör följande kommandon för att skapa katalogen och göra den skrivbar för Apache-servern.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
För att undvika duplicering av kod och göra konfigurationen mer underhållbar, skapar du följande två konfigurationsavsnitt:
/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"
Utdraget ovan använder flishuggarna som rekommenderas av Cipherli.st. Det möjliggör OCSP-häftning, HTTP Strict Transport Security (HSTS), Dh-nyckel och upprätthåller få säkerhetsfokuserade
Ladda om Apache-konfigurationen så att ändringar träder i kraft:
sudo systemctl reload
Nu kan du köra certbot-skript med webroot-plugin och hämta SSL-certifikatfilerna:
sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Vid framgång skriver certbot följande meddelande:
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 när allt är konfigurerat redigerar du din virtuella domänkonfiguration på följande sätt:
/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 ovan tvingar HTTPS och omdirigerar från www till icke-www version. Det möjliggör också HTTP / 2, vilket gör dina webbplatser snabbare och mer robusta. Håll dig fri för att justera konfigurationen efter dina behov.
Starta om Apache-tjänsten:
sudo systemctl restart
Du kan nu öppna din webbplats med
https://
, och du kommer att märka en grön låsikon.

Automatisk förnyelse av Let's Encrypt SSL-certifikat
Let's Encrypts certifikat är giltiga i 90 dagar. För att automatiskt förnya certifikaten innan de löper ut, skapar vi en cronjob som körs två gånger om dagen och automatiskt förnyar alla certifikat 30 dagar innan det löper ut.
Kör följande kommando för att skapa en ny cronjob som kommer att förnya certifikatet och starta om 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
För att testa förnyelseprocessen använder du certbot-kommandot följt av
--dry-run
omkopplaren:
sudo /usr/local/bin/certbot-auto renew --dry-run
Om det inte finns några fel betyder det att förnyelseprocessen var framgångsrik.
Slutsats
I den här tutorialen pratade vi om hur vi använder Let's Encrypt-klientcertbot på CentOS för att få SSL-certifikat för dina domäner. Du har också visat hur du konfigurerar Apache för att använda certifikaten och ställa in en cronjob för automatisk certifikatförnyelse.
Om du vill veta mer om Certbot-skriptet besöker du Certbot-dokumentationen.
apache centos låt oss kryptera certbot sslSäkra apache med låt oss kryptera på centos 7
I den här tutorialen kommer vi att täcka stegen som krävs för att installera ett gratis Let's Encrypt SSL-certifikat på en CentOS 7-server som kör Apache som en webbserver.
Säkra apache med låt oss kryptera på debian 9
Denna handledning leder dig genom processen för att få ett gratis Let's Encrypt med certbot-verktyget på Debian 9. Vi visar också hur du konfigurerar Apache för att använda det nya SSL-certifikatet och aktivera HTTP / 2
Säkra apache med låt oss kryptera på ubuntu 18.04
I den här handledningen ger vi steg för steg instruktioner om hur du säkra din Apache med Let's Encrypt med certbot-verktyget på Ubuntu 18.04.







