Queen - Killer Queen (Top Of The Pops, 1974)
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). Certifikat som utfärdats av Let's Encrypt är giltiga i 90 dagar från utfärdandedatumet och förlitas av alla stora webbläsare idag.
I denna handledning täcker vi de steg 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. Vi använder certbot-verktyget för att få och förnya Let's Encrypt-certifikat.
förutsättningar
Se till att du har uppfyllt följande förutsättningar innan du fortsätter med denna handledning:
- 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. Har Apache virtuell värd för din 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:
Installera Certbot
Certbot är ett verktyg som förenklar processen för att få SSL-certifikat från Let's Encrypt och automatiskt aktivera HTTPS på din server.
Certbot-paketet är tillgängligt för installation från EPEL. Om EPEL-lagret inte är installerat på ditt system kan du installera det med följande kommando:
sudo yum install epel-release
När EPEL-lagret är aktiverat installerar du certbot-paketet genom att skriva:
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 storleken upp till 4096 bitar, men i så fall kan generationen 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 vår domän kommer vi att använda Webroot-plugin som fungerar genom att skapa en tillfällig fil för att validera 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 det enklare kommer vi att kartlägga alla HTTP-begäranden för
.well-known/acme-challenge
till en enda katalog,
/var/lib/letsencrypt
.
Kör thr 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 skapar du följande två konfigurationsavsnitt:
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
Utdraget ovan använder flishuggarna som rekommenderas av Cipherli.st, aktiverar OCSP Stapling, HTTP Strict Transport Security (HSTS) och verkställer få säkerhetsfokuserade
Ladda om Apache-konfigurationen så att ändringar träder i kraft:
sudo systemctl reload
Nu kan vi köra Certbot-verktyget med webroot-plugin och få SSL-certifikatfiler genom att skriva:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Om SSL-certifikatet erhålls framgångsrikt kommer certbot att skriva ut 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 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 levereras med Apache version 2.4.6, som inte inkluderar
SSLOpenSSLConfCmd
direktivet. Detta direktiv är endast tillgängligt på Apache 2.4.8 senare, och det används för konfiguration av OpenSSL-parametrar som Diffie – Hellman key Exchange (DH).
Vi måste skapa en ny kombinerad fil med Let's Encrypt SSL-certifikatet och den genererade DH-filen. För att göra detta skriver du:
cat /etc/letsencrypt/live/example.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/example.com/cert.dh.pem
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 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 ovan tvingar vi HTTPS och omdirigerar från www till icke-www version. Håll dig fri för att justera konfigurationen efter dina behov.
Starta om Apache-tjänsten så att ändringarna träder i kraft:
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
crontab
kommandot för att skapa en ny cronjob som kommer att förnya certifikatet, skapa en ny kombinerad fil inklusive DH-nyckeln och starta om 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
Spara och stäng filen.
För att testa förnyelseprocessen kan du använda certbot-kommandot följt av -
--dry-run
omkopplaren:
sudo certbot renew --dry-run
Om det inte finns några fel betyder det att förnyelseprocessen var framgångsrik.
Slutsats
I den här handledningen använde vi Let's Encrypt-klientens certbot för att ladda ner SSL-certifikat för din domän. Du har också skapat Apache-utdrag för att undvika duplicering av kod och konfigurerat Apache för att använda certifikaten. I slutet av självstudien har du skapat en cronjob för automatisk förnyelse av certifikat.
apache centos låt oss kryptera certbot sslDet här inlägget är en del av Install LAMP Stack i CentOS 7-serien.
Andra inlägg i denna serie:
• Hur man installerar Apache på CentOS 7 • Installera MySQL på CentOS 7 • Hur man ställer in Apache virtuella värdar på CentOS 7 • Säkra Apache med Let's Encrypt på CentOS 7Säkra apache med låt oss kryptera på centos 8
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.
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.







