Android

Säkra apache med låt oss kryptera på debian 9

Shake Karaan – Full Song with lyrics | Munna Michael | Nidhhi Agerwal | Meet Bros Ft. Kanika Kapoor

Shake Karaan – Full Song with lyrics | Munna Michael | Nidhhi Agerwal | Meet Bros Ft. Kanika Kapoor

Innehållsförteckning:

Anonim

Let's Encrypt är en certifikatutfärdare skapad av Internet Security Research Group (ISRG). Det tillhandahåller gratis SSL-certifikat via en helautomatisk process som är utformad för att eliminera manuell certifiering, validering, installation och förnyelse av certifikat.

Certifikat som utfärdas av Let's Encrypt är giltiga i 90 dagar från utfärdandedatumet och förlitas av alla stora webbläsare idag.

Denna handledning leder dig genom processen 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.

förutsättningar

Se till att du har uppfyllt följande förutsättningar innan du fortsätter med denna handledning:

  • Loggad in som användare med sudo-privilegier. Har ett domännamn som pekar på din server offentliga server-IP. Vi kommer att använda exempel.com. Apache installerat. En virtuell apache-värd för din domän. Du kan följa dessa instruktioner för information om hur du skapar en.

Installera Certbot

Certbot är ett fullt utrustat och lättanvänt verktyg som kan automatisera uppgifterna för att få och förnya Let's Encrypt SSL-certifikat. Certbot-paketet ingår i Debians standardförvar.

Uppdatera paketlistan och installera certbot-paketet med följande kommandon:

sudo apt update sudo apt install certbot

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.

För att generera en ny uppsättning 2048-bitars DH-parametrar körs:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 Om du vill kan du ä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 .

Följande kommandon skapar katalogen och gör den skrivbar för Apache-servern.

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp www-data /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt

För att undvika duplicering av kod skapar du följande två konfigurationsavsnitt:

/etc/apache2/conf-available/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 /etc/apache2/conf-available/ssl-params.conf

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"

Utdraget ovan använder flishuggarna som rekommenderas av Cipherli.st, aktiverar OCSP Stapling, HTTP Strict Transport Security (HSTS) och verkställer få säkerhetsfokuserade

Innan du aktiverar konfigurationsfilerna, se till att både mod_ssl och mod_headers är aktiverade genom att utfärda:

sudo a2enmod ssl sudo a2enmod headers

Aktivera HTTP / 2-modulen, vilket gör dina webbplatser snabbare och mer robusta:

sudo a2enmod

Aktivera SSL-konfigurationsfilerna genom att köra följande kommandon:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

Ladda om Apache-konfigurationen så att ändringar träder i kraft:

sudo systemctl reload apache2

Använd Certbot-verktyget med webroot-plugin för att få SSL-certifikatfiler:

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: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2019-01-17. 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 lose your account credentials, you can recover through e-mails sent to [email protected]. - 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 du har certifikatfilerna kan du redigera din virtuella domänkonfiguration på följande sätt:

/etc/apache2/sites-available/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 ${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 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.

Ladda om Apache-tjänsten så att ändringar träder i kraft:

sudo systemctl reload apache2

Öppna din webbplats med https:// så ser du 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 certbot-paketet en cronjob som körs två gånger om dagen och kommer automatiskt att förnya alla certifikat 30 dagar innan det löper ut.

När certifikatet har förnyats måste vi också ladda om Apache-tjänsten. Lägg till - --renew-hook "systemctl reload apache2" till filen /etc/cron.d/certbot så det ser ut enligt följande:

/etc/cron.d/certbot

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"

För att testa förnyelseprocessen använder du certbot - --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 självstudien använde du Let's Encrypt-klientcertbot för att få 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 debian låt oss kryptera certbot ssl

Det här inlägget är en del av hur man installerar LAMP Stack i Debian 9-serien.

Andra inlägg i denna serie:

• Hur man installerar Apache på Debian 9 • Hur man installerar PHP på Debian 9 • Hur man installerar Apache virtuella värdar på Debian 9 • Hur man installerar MariaDB på Debian 9 • Säkra Apache med låt oss kryptera på Debian 9