Android

Säkra apache med låt oss kryptera på ubuntu 18.04

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 litar på alla stora webbläsare idag.

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.

förutsättningar

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

  • Domännamn som pekar på din offentliga server-IP. Vi kommer att använda example.com Du har Apache installerat med en virtuell apache-värd för din domän.

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 och konfigurera webbservrar. Certbot-paketet ingår i Ubuntu standardförvar.

Uppdatera paketlistan och installera certbot-paketet:

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. Vi kommer att 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 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 domänen 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 sedan SSL-konfigurationsfilerna genom att köra följande kommandon:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

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

sudo a2enmod

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

sudo systemctl reload apache2

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

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 certbot-paketet en cronjob som körs två gånger om dagen och automatiskt förnyar alla certifikat 30 dagar innan dess utgång.

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å att den 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 kan du använda 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-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 ubuntu låt oss kryptera certbot ssl

Det här inlägget är en del av hur-att-installera-lampa-stack-på-ubuntu-18-04-serien.

Andra inlägg i denna serie:

• Hur man installerar Apache på Ubuntu 18.04 • Hur man installerar virtuella värden för Apache på Ubuntu 18.04 • Säkra Apache med Let's Encrypt på Ubuntu 18.04 • Hur man installerar MySQL på Ubuntu 18.04 • Hur man installerar PHP på Ubuntu 18.04