Android

Zabezpečte apache pomocí šifrování na centech 7

#ISPConfig a #HTTPS s certifikátem #letsencrypt

#ISPConfig a #HTTPS s certifikátem #letsencrypt

Obsah:

Anonim

Let's Encrypt je bezplatná, automatizovaná a otevřená certifikační autorita vyvinutá společností Internet Security Research Group (ISRG). Certifikáty vydané Let's Encrypt jsou platné 90 dní od data vydání a jsou dnes důvěryhodné ve všech hlavních prohlížečích.

V tomto tutoriálu se budeme věnovat krokům nezbytným k instalaci bezplatného certifikátu Pojďme šifrovat SSL na server CentOS 7 s Apache jako webovým serverem. Pomocí nástroje certbot získáme a obnovíme Let's Encrypt Certificates.

Předpoklady

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

  • Název domény ukazující na IP vašeho veřejného serveru. Použijeme example.com .Apache je na vašem serveru nainstalován a spuštěn. Virtuální hostitel Apache pro vaši doménu. V bráně firewall jsou otevřeny středy 80 a 443.

Nainstalujte následující balíčky, které jsou vyžadovány pro webový server se šifrováním SSL:

yum install mod_ssl openssl

Nainstalujte Certbot

Certbot je nástroj, který zjednodušuje proces získání SSL certifikátů z Let's Encrypt a auto-enabled HTTPS na vašem serveru.

Balíček certbot je dostupný pro instalaci z EPEL. Pokud úložiště EPEL není na vašem systému nainstalováno, můžete jej nainstalovat pomocí následujícího příkazu:

sudo yum install epel-release

Jakmile je úložiště EPEL povoleno, nainstalujte balíček certbot zadáním:

sudo yum 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. Vygenerujte novou sadu 2048bitových DH parametrů pro posílení zabezpečení:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 Velikost můžete změnit 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 .

Spusťte následující příkazy, abyste vytvořili adresář a umožnili jeho zápis na server Apache:

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp apache /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/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 /etc/httpd/conf.d/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

Úryvek výše používá chippery 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í.

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

sudo systemctl reload

Nyní můžeme spustit nástroj Certbot s pluginem webroot a získat soubory certifikátů SSL zadáním:

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: - 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 je dodáván s Apache verzí 2.4.6, která neobsahuje směrnici SSLOpenSSLConfCmd . Tato směrnice je k dispozici pouze na Apache 2.4.8 později a používá se pro konfiguraci parametrů OpenSSL, jako je například výměna klíčů Diffie – Hellman (DH).

Budeme muset vytvořit nový kombinovaný soubor pomocí Let's Encrypt SSL certificate a vygenerovaného DH souboru. Chcete-li to provést, zadejte:

cat /etc/letsencrypt/live/example.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/example.com/cert.dh.pem

Nyní, když je vše nastaveno, upravte konfiguraci virtuálního hostitele vaší domény takto:

/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

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.

Restartujte službu Apache, aby se změny projevily:

sudo systemctl restart

Nyní můžete otevřít svůj 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říme cronjob, který bude spuštěn dvakrát denně a automaticky obnovíme jakýkoli certifikát 30 dní před jeho vypršením.

Spusťte příkaz crontab a vytvořte nový cronjob, který obnoví certifikát, vytvoří nový kombinovaný soubor včetně klíče DH a restartuje 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

Uložte a zavřete soubor.

Chcete-li otestovat proces obnovy, můžete použít příkaz certbot následovaný přepínačem --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 ke stažení 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 centos zašifrujme certbot ssl

Tento příspěvek je součástí sady Install LAMP Stack na sérii CentOS 7.

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

• Jak nainstalovat Apache na CentOS 7 • Nainstalovat MySQL na CentOS 7 • Jak nastavit virtuální hostitele Apache na CentOS 7 • Zabezpečit Apache pomocí šifrování na CentOS 7