How to install Apache webserver | in linux
Obsah:
- Předpoklady
- Instalace certifikátu
- Vytváří 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í.
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.
Předpoklady
Než budete pokračovat, ujistěte se, že jste splnili následující předpoklady:
- Máte doménové jméno ukazující na vaši veřejnou IP. Použijeme
example.com
.Nainstalovali jste na svém serveru CentOS Nginx. Váš firewall je nakonfigurován tak, aby přijímal připojení na portech 80 a 443.
Instalace certifikátu
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
Vytváří 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 2048 bitových DH parametrů zadáním následujícího příkazu:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Získání šifrovaného certifikátu SSL
Abychom získali certifikát 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 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 Nginx.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp nginx /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
Chcete-li se vyhnout duplicitě kódu, vytvořte následující dva úryvky, které budou zahrnuty do všech souborů bloků serveru Nginx:
sudo mkdir /etc/nginx/snippets
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=63072000" always; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
Úryvek výše zahrnuje chippery doporučené Mozillou, umožňuje OCSP sešívání, HTTP Strict Transport Security (HSTS) a vynucuje několik záhlaví HTTP zaměřených na zabezpečení.
Po vytvoření úryvků otevřete blok serveru domény a
letsencrypt.conf
útržek
letsencrypt.conf
, jak je uvedeno níže:
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
Znovu načtěte konfiguraci Nginx, aby se změny projevily:
sudo systemctl reload nginx
Spusťte nástroj certbot s pluginem webroot a získejte soubory certifikátů SSL pro vaši doménu:
sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Pokud poprvé spustíte
certbot
, nainstaluje nástroj chybějící závislosti.
Po úspěšném získání certifikátu SSL vytiskne certbot 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-03-12. 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" - 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ů, můžete upravit blok serveru domény následujícím způsobem:
/etc/nginx/conf.d/example.com.conf
server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; #… other code }
S výše uvedenou konfigurací nutíme HTTPS a přesměrujeme www na jinou než www verzi.
Nakonec znovu načtěte službu Nginx, aby se změny projevily:
sudo systemctl reload nginx
Nyní 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řte cronjob, který bude spuštěn dvakrát denně a automaticky obnovte jakýkoli certifikát 30 dní před vypršením platnosti.
Pomocí příkazu
crontab
vytvořte nový cronjob:
sudo crontab -e
Vložte následující řádek:
0 */12 * * * root test -x /usr/local/bin/certbot-auto -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && /usr/local/bin/certbot-auto -q renew --renew-hook "systemctl reload nginx"
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 testu byl úspěšný.
Závěr
V tomto tutoriálu jsme vám ukázali, jak používat klienta Let's Encrypt, certbot ke stažení certifikátů SSL pro vaši doménu. Také jsme vytvořili úryvky Nginx, abychom se vyhnuli duplikování kódu, a nakonfigurovali jsme Nginx, aby používal certifikáty. Na konci tutoriálu jsme nastavili cronjob pro automatické obnovení certifikátu.
Další informace o společnosti Certbot naleznete na stránce dokumentace.
nginx 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 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.