#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), která poskytuje bezplatné certifikáty SSL.
Certifikáty vydané Let's Encrypt jsou důvěryhodné ve všech hlavních prohlížečích a jsou platné 90 dní od data vydání.
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.
Předpoklady
Před pokračováním se ujistěte, že jsou splněny 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ána a spuštěna s virtuálním hostitelem nakonfigurovaným 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:
sudo dnf install mod_ssl openssl
Když je nainstalován balíček mod_ssl, měl by vytvořit soubor klíče a certifikátu s vlastním podpisem pro localhost. Pokud soubory nejsou automaticky vytvořeny, můžete je vytvořit pomocí příkazu
openssl
:
sudo openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes \
-out /etc/pki/tls/certs/localhost.crt \
-keyout /etc/pki/tls/private/localhost.key
Nainstalujte Certbot
Certbot je bezplatný nástroj příkazového řádku, který zjednodušuje proces získávání a obnovování šifrování SSL certifikátů z HTTPS na vašem serveru a automatické povolení
Balíček certbot není součástí standardních repozitářů CentOS 8, ale lze jej stáhnout z webových stránek dodavatele.
Spusťte následující příkaz
wget
jako uživatel root nebo sudo a stáhněte si skript certbot do
/usr/local/bin
:
sudo wget -P /usr/local/bin
Po dokončení stahování vytvořte soubor spustitelným:
sudo chmod +x /usr/local/bin/certbot-auto
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 generování může trvat déle než 30 minut v závislosti na entropii systému.
Získání šifrovaného certifikátu SSL
K získání certifikátu SSL pro doménu použijeme plugin Webroot, který funguje vytvořením dočasného souboru pro ověření požadované domény ve složce
${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 bylo nastavení jednodušší,
/var/lib/letsencrypt
všechny HTTP požadavky na
.well-known/acme-challenge
do jednoho adresáře
/var/lib/letsencrypt
.
Spusťte následující příkazy, abyste vytvořili adresář a učinili jej zapisovatelným pro 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 a zvýšit tak udržovatelnost konfigurace, vytvořte následující dva úryvky konfigurací:
/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
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM # Requires Apache 2.4.36 & OpenSSL 1.1.1 SSLProtocol -all +TLSv1.3 +TLSv1.2 SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1 # Older versions # 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á štěpkovače doporučené Cipherli.st. Umožňuje OCSP sešívání, HTTP Strict Transport Security (HSTS), klíč Dh 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ůžete spustit skript certbot pomocí pluginu webroot a načíst soubory certifikátů SSL:
sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Po úspěchu 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 2020-01-26. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - 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ž 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 Protocols h2 http:/1.1 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/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 /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/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 /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/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 /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/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
Výše uvedená konfigurace nutí HTTPS a přesměruje z www na non-www verzi. Umožňuje také HTTP / 2, díky kterému budou vaše stránky rychlejší a robustnější. Bezplatný pro přizpůsobení konfigurace podle vašich potřeb.
Restartujte službu Apache:
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ý se spustí dvakrát denně a automaticky obnovíme jakýkoli certifikát 30 dní před jeho vypršením.
Spusťte následující příkaz a vytvořte nový cronjob, který obnoví certifikát a restartuje Apache:
echo "0 0, 12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto -q renew --renew-hook \"systemctl reload httpd\"" | sudo tee -a /etc/crontab > /dev/null
Chcete-li otestovat proces obnovy, použijte příkaz certbot následovaný přepínačem
--dry-run
:
sudo /usr/local/bin/certbot-auto renew --dry-run
Pokud neexistují žádné chyby, znamená to, že proces obnovy byl úspěšný.
Závěr
V tomto tutoriálu jsme hovořili o tom, jak pomocí certifikátu Poďme šifrovat klienta na CentOS získat certifikáty SSL pro vaše domény. Také jste si ukázali, jak nakonfigurovat Apache tak, aby používal certifikáty a nastavil cronjob pro automatické obnovení certifikátů.
Další informace o skriptu Certbot naleznete v dokumentaci Certbot.
apache centos zašifrujme certbot sslZabezpeč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 7

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, na kterém běží Apache jako webový server.
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.