Android

Zajistěte apache pomocí šifrování debianu 9

#ISPConfig a #HTTPS s certifikátem #letsencrypt

#ISPConfig a #HTTPS s certifikátem #letsencrypt

Obsah:

Anonim

Pojďme Encrypt je certifikační autorita vytvořená Internet Security Research Group (ISRG). Poskytuje bezplatné SSL certifikáty prostřednictvím plně automatizovaného procesu navrženého tak, aby eliminoval ruční vytváření certifikátů, ověření, instalaci a obnovu.

Certifikáty vydané společností Let's Encrypt jsou platné 90 dní od data vydání a jsou dnes důvěryhodné všemi hlavními prohlížeči.

Tento tutoriál vás provede procesem získání bezplatného šifrování pomocí nástroje certbot v Debianu 9. Ukážeme také, jak nakonfigurovat Apache tak, aby používal nový certifikát SSL a povolil HTTP / 2.

Předpoklady

Před pokračováním v tomto kurzu se ujistěte, že jste splnili následující předpoklady:

  • Přihlášen jako uživatel s právy sudo. Název domény ukazující na IP veřejného serveru vašeho serveru. Použijeme nainstalovanou adresu example.com .Apache. Virtuální hostitel apache pro vaši doménu. Postupujte podle těchto pokynů, kde najdete podrobnosti o tom, jak jej vytvořit.

Nainstalujte Certbot

Certbot je plně vybavený a snadno použitelný nástroj, který může automatizovat úkoly pro získání a obnovu Let's Encrypt SSL Certificates. Balíček certbot je obsažen ve výchozích úložištích Debianu.

Aktualizujte seznam balíčků a nainstalujte balíček certbot pomocí následujících příkazů:

sudo apt update sudo apt install certbot

Vytvořte silnou skupinu Dh (Diffie-Hellman)

Výměna klíčů Diffie – Hellman (DH) je metoda bezpečné výměny kryptografických klíčů přes nezajištěný komunikační kanál.

Chcete-li vygenerovat novou sadu 2048bitových DH parametrů, spusťte:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 Pokud chcete, můžete změnit velikost až na 4096 bitů, ale v takovém případě může generování trvat déle než 30 minut v závislosti na entropii systému.

Získání šifrovaného certifikátu SSL

Abychom získali certifikát SSL pro naši doménu, použijeme plugin Webroot, který funguje vytvořením dočasného souboru pro ověření požadované domény v adresáři ${webroot-path}/.well-known/acme-challenge . Server Pojďme šifrovat provede požadavky HTTP na dočasný soubor, aby ověřil, že se požadovaná doména převede na server, na kterém je spuštěn certbot.

Aby to bylo jednodušší, budeme mapovat všechny požadavky HTTP na .well-known/acme-challenge do jednoho adresáře /var/lib/letsencrypt .

Následující příkazy vytvoří adresář a učiní jej zapisovatelným pro server Apache.

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

Chcete-li se vyhnout duplikování kódu, vytvořte následující dva úryvky konfigurace:

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

Úryvek výše používá čipy doporučené společností Cipherli.st, umožňuje sešívání OCSP, HTTP Strict Transport Security (HSTS) a vynucuje několik záhlaví HTTP zaměřených na zabezpečení.

Před povolením konfiguračních souborů se ujistěte, že jsou povoleny mod_ssl a mod_headers vydáním:

sudo a2enmod ssl sudo a2enmod headers

Aktivujte modul HTTP / 2, díky kterému budou vaše stránky rychlejší a robustnější:

sudo a2enmod

Povolte konfigurační soubory SSL spuštěním následujících příkazů:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

Znovu načtěte konfiguraci Apache, aby se změny projevily:

sudo systemctl reload apache2

K získání souborů certifikátů SSL použijte nástroj Certbot s pluginem webroot:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

Pokud je certifikát SSL úspěšně získán, certbot vytiskne následující zprávu:

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:

Nyní, když máte soubory certifikátů, upravte konfiguraci virtuálního hostitele vaší domény takto:

/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

S výše uvedenou konfigurací nutíme HTTPS a přesměrujeme z www na non-www verzi. Bezplatný pro přizpůsobení konfigurace podle vašich potřeb.

Znovu načtěte službu Apache, aby se změny projevily:

sudo systemctl reload apache2

Otevřete web pomocí https:// a všimnete si zelené ikony zámku.

Automatické obnovení Pojďme šifrovat SSL certifikát

Certifikáty šifrování jsou platné 90 dní. Chcete-li automaticky obnovit certifikáty před vypršením jejich platnosti, vytvoří balíček certbot cronjob, který běží dvakrát denně a automaticky obnoví jakýkoli certifikát 30 dní před jeho vypršením.

Po obnovení certifikátu musíme znovu načíst službu Apache. Připojte --renew-hook "systemctl reload apache2" do souboru /etc/cron.d/certbot takže vypadá takto:

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

Chcete-li otestovat proces obnovy, použijte přepínač certbot --dry-run :

sudo certbot renew --dry-run

Pokud neexistují žádné chyby, znamená to, že proces obnovy byl úspěšný.

Závěr

V tomto tutoriálu jste k získání certifikátů SSL pro vaši doménu použili certifikát Let's Encrypt client certbot. Také jste vytvořili úryvky Apache, abyste zabránili duplikování kódu, a nakonfigurovali jste Apache, aby používal certifikáty. Na konci tutoriálu jste nastavili cronjob pro automatické obnovení certifikátu.

apache debian pojďme zašifrovat certbot ssl

Tento příspěvek je součástí Jak nainstalovat LAMP Stack na sérii Debian 9.

Další příspěvky v této sérii:

• Jak nainstalovat Apache na Debian 9 • Jak nainstalovat PHP na Debian 9 • Jak nastavit virtuální hostitele Apache na Debian 9 • Jak nainstalovat MariaDB na Debian 9 • Zabezpečit Apache pomocí šifrování na Debianu 9