#ISPConfig a #HTTPS s certifikátem #letsencrypt
Obsah:
- Předpoklady
- Nainstalujte Certbot
- Vytvořte silnou skupinu Dh (Diffie-Hellman)
- Získání šifrovaného certifikátu SSL
- Automatické obnovení Pojďme šifrovat SSL certifikát
- Závěr
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:
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:
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:
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
Ú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 sslTento 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 7Zabezpečte nginx pomocí šifrování na centech 7

V tomto tutoriálu vám poskytneme postupné pokyny, jak zabezpečit Nginx pomocí Let's Encrypt pomocí nástroje certbot na CentOS 7
Zabezpečte apache pomocí šifrování na centech 8

Tento tutoriál vysvětluje, jak nainstalovat bezplatný certifikát Encrypt SSL na CentOS 8, na kterém běží Apache jako webový server. K získání a obnovení certifikátů použijeme nástroj certbot.
Zabezpečte nginx pomocí šifrování na centech 8

V tomto tutoriálu vám krok za krokem poskytneme pokyny, jak nainstalovat bezplatný certifikát šifrování SSL na CentOS 8, na kterém běží Nginx jako webový server. Ukážeme také, jak nakonfigurovat Nginx tak, aby používal certifikát SSL a povolil HTTP / 2.