GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat Nginx pomocí šifrování Lets a získat A+ z testu SSLLabs

V tomto tutoriálu vám krok za krokem ukážu, jak nainstalovat a nakonfigurovat webový server Nginx s certifikátem Letsencrypt. Tato příručka vám řekne o instalaci webového serveru Nginx, instalaci nástroje let's encrypt, generování certifikátu SSL umožňujícího šifrování, konfiguraci virtuálního hostitele nginx pomocí SSL a vytvoření další konfigurace SSL, abyste získali A+ z testovacích laboratoří SSL SSL.

Předpoklady

  • Linux Server – Ubuntu 18.04 nebo CentOS 7.5
  • Oprávnění uživatele root

Co uděláme?

  1. Nainstalujte webový server Nginx
  2. Konfigurace brány firewall UFW/Firewalld
  3. Nainstalujte Lets encrypt and Generate SSL Certificate
  4. Nakonfigurujte zabezpečené SSL
  5. Nakonfigurujte virtuálního hostitele Nginx s SSL
  6. Testování

Krok 1 – Instalace webového serveru Nginx

V tomto tutoriálu vás provedeme instalací a konfigurací webového serveru Nginx s Letsencrypt na obou serverech Linux – Ubuntu 18.04 a CentOS 7.5.

V Ubuntu 18.04.

Aktualizujte úložiště a poté nainstalujte nginx pomocí příkazu apt níže.

aktualizace sudo apt
instalace sudo apt nginx -y

V systému CentOS 7.5

Nainstalujte úložiště EPEL do systému CentOS a nainstalujte Nginx pomocí příkazu yum.

sudo yum install epel-release -y
sudo yum install nginx -y

Po dokončení instalace spusťte službu Nginx a povolte její spuštění při každém spuštění systému.

systemctl spustit nginx
systemctl povolit nginx

Webový server Nginx je nyní nainstalován a běží na výchozím portu HTTP 80. Zkontrolujte jej pomocí příkazu netstat níže.

netstat -plntu

Krok 2 – Konfigurace firewallu UFW – Firewall

Doporučuje se zapnout Firewall na serveru a otevřít konkrétní port podle potřeby. V tomto kroku si ukážeme, jak otevřít porty SSH, HTTP a HTTPS na linuxových serverech Ubuntu 18.04 pomocí UFW firewallu a Firewallu na systému CentOS 7.5.

V Ubuntu 18.04 – UFW Firewall

Před povolením brány UFW Firewall na systému Ubuntu se ujistěte, že je v konfiguraci brány firewall v seznamu povolen port SSH.

Přidejte port služby SSH do konfigurace brány firewall pomocí příkazu ufw a poté povolte službu brány firewall UFW.

ufw povolit ssh
ufw povolit

Nyní přidejte služby HTTP a HTTPS.

ufw povolit http
ufw povolit https

Porty služeb SSH, HTTP a HTTPS byly přidány do seznamu služeb brány UFW Firewall, zkontrolujte, zda používáte příkaz níže.

Stav ufw

V systému CentOS 7.5 – Firewalld

Před přidáním portu a služeb do firewallu se ujistěte, že je služba firewallu spuštěna a spuštěna.

Spusťte službu firewalld a povolte její spuštění při každém spuštění systému.

systemctl spustit firewalld
systemctl povolit firewalld

Poznámka:

  • Služba SSH bude v seznamu služeb Firewald ve výchozím nastavení povolena.

Nyní přidejte služby HTTP a HTTPS pomocí příkazu firewall-cmd níže.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent

Znovu načtěte konfiguraci brány firewall a zkontrolujte seznam služeb.

firewall-cmd --reload
firewall-cmd --list-services

A na seznamu získáte služby SSH, HTTP a HTTPS.

Krok 3 – Instalace Letsencrypt a vygenerování certifikátů

V tomto kroku nainstalujeme nástroj letsencrypt a pomocí příkazu cerbot vygenerujeme silné SSL certifikáty Letsencrypt.

V Ubuntu 18.04

Nainstalujte balíčky letsencrypt pomocí příkazu apt níže.

sudo apt install letsencrypt -y

V systému CentOS 7.5

Nyní nainstalujte balíčky letsencrypt na CentOS 7 pomocí příkazu yum níže.

sudo yum nainstalovat certbot -y

Po dokončení instalace vytvoříme novou konfiguraci, která bude použita pro generování souborů certifikátu SSL.

V Ubuntu 18.04

Přejděte do konfiguračního adresáře '/etc/nginx' a vytvořte nový konfigurační soubor 'cerbot.conf' v adresáři 'snippets'.

cd /etc/nginx/
úryvky vim/certbot.conf

Zde vložte následující konfiguraci.

 umístění /.well-known { alias /var/www/html/.well-known; }

Uložte a ukončete.

Nyní upravte výchozí soubor virtuálního hostitele Nginx.

vim sites-available/default

Přidejte následující konfiguraci pod bloky 'server {..}'.

 include snippets/certbot.conf;

Uložte a ukončete.

V systému CentOS 7.5

Přejděte do konfiguračního adresáře '/etc/nginx' a vytvořte nový konfigurační soubor 'certbot.conf' v adresáři 'default.d'.

cd /etc/nginx/
vim default.d/certbot.conf

Vložte konfiguraci níže.

 umístění /.well-known { alias /usr/share/nginx/html/.well-known; }

Uložte a ukončete.

Nyní otestujte konfiguraci nginx a ujistěte se, že nedošlo k chybě, poté restartujte službu nginx.

nginx -t
systemctl restart nginx

Dále vygenerujte certifikáty SSL letsencrypt pomocí příkazu certbot.

V Ubuntu 18.04

certbot certonly --rsa-key-size 4096 --webroot --agree-tos --no-eff-email --email [e-mail protected] -w /var/www/html -d hakase-labs.io 

V systému CentOS 7.5

certbot certonly --rsa-key-size 4096 --webroot --agree-tos --no-eff-email --email [e-mail protected] -w /usr/share/nginx/html -d hakase-labs .io

Poznámka:

  • Zadáme velikost klíče RSA pro naši doménu na '4096' a definujeme metodu ověřování pro výchozí webový kořenový adresář '/var/www/html' v systému Ubuntu a '/usr/share/ nginx/html' pro systém CentOS 7.

Po dokončení získáte všechny soubory certifikátu SSL pro název domény v adresáři '/etc/letsencrypt/live'.

Abychom získali další zabezpečení, vygenerujeme klíč DHPARAM '4096' pomocí příkazu OpenSSL, jak je uvedeno níže.

openssl dhparam -out /etc/nginx/dhparam.pem 4096

Klíč DHPARAM byl vygenerován do adresáře '/etc/nginx'.

Krok 4 – Konfigurace SSL

V tomto kroku definujeme konfiguraci SSL pro webový server Nginx. Vytvoříme novou konfiguraci 'ssl.conf', která obsahuje vylepšené zabezpečení konfigurace SSL zaměřené na webový server Nginx.

V Ubuntu 18.04

Přejděte do konfiguračního adresáře '/etc/nginx/' a vytvořte novou konfiguraci SSL 'ssl.conf' v adresáři 'snippets'.

cd /etc/nginx/
úryvky vim/ssl.conf

V systému CentOS 7.5

Přejděte do konfiguračního adresáře '/etc/nginx/' a vytvořte novou konfiguraci SSL 'ssl/conf' v adresáři 'default.d'.

cd /etc/nginx/
vim default.d/ssl.conf

Zde vložte následující konfiguraci SSL.

# Specifikujte verze TLSssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;# Doporučení pro šifrovací sady od chiper.li# Pomocí této sady čipů získáte 100 bodů testu SSLabs# Některá zařízení nebudou podporovat#ssl_HE-ciphers RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES2846"ssuit# Mozilla Doporučení# Použijte toto pro všechna zařízení, která podporují ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-13CHAES1005:ECDHE-POLSAYCHADHE200 -GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256'ECDHE-použití#285RSA6 klíč DHPARAM a křivka ECDH>=256bitssl_ecdh_curve secp384r1;ssl_dhparam /etc/nginx/dhparam.pem;server_tokens off;ssl_session_timeout 1d;ssl_session_cache shared;SSL_session_cache have shared;SSL_SportseSkettic HTTP-STTran#Skettic; ubdoména vašeho webu,# buďte opatrní a použijte volby 'includeSubdomains'add_header Strict-Transport-Security "max-age=63072000; includeSubdomény; preload";# Povolit sešívání OSCP pro webový server Nginx# Pokud používáte SSL od Letsencrypt,# použijte 'chain.pem' certificatessl_stapling on;ssl_stapling_verify on;ssl_trusted_certificate /etc/letsencrypt/live/hakase-labs.io chain.pem;resolver 8.8.8.8 8.8.4.4 valid=300s;resolver_timeout 5s;# Ochrana XSS pro webový server Nginxadd_header X-Frame-Options DENY;add_header X-XSS-Protection "1; mode=block";add_header X-Content-Type-Options nosniff;add_header X-Robots-Tag none;

Uložte a ukončete.

Poznámka:

  • Upřesněte verze TLS pro web, přijměte pouze TLSv1 TLSv1.1 TLSv1.2.
  • Uveďte šifrovací sadu SSL a pro zajištění kompatibility všech zařízení se doporučuje používat šifrovací sadu SSL podle návrhu Mozilly.
  • Povolte HSTS, sešívání OSCP a přidání ochrany XSS.

Krok 5 – Konfigurace virtuálního hostitele Nginx s SSL

V tomto kroku vytvoříme soubor virtuálního hostitele pro název domény. Vytvoříme nového virtuálního hostitele, doménu s názvem hakase-labs.io, a jeho webový kořenový adresář bude umístěn v adresáři '/var/www/site01'.

Vytvořte nový adresář '/var/www/site01' a uvnitř vytvořte soubor 'index.html'.

mkdir -p /var/www/site01
echo '

Nginx - Letsencrypt - A+

'> /var/www/site01/index.html

Nyní přejděte do konfiguračního adresáře '/etc/nginx' a vytvořte nový soubor virtuálního hostitele s názvem 'hakase-labs.io' pro ubuntu a 'hakase-labs.conf' pro systém CentOS 7.

V Ubuntu 18.04

cd /etc/nginx/
vim sites-available/hakase-labs.io

V systému CentOS 7.5

cd /etc/nginx/
vim conf.d/hakase-labs.conf

Zde vložte následující ukázkovou konfiguraci virtuálního hostitele Nginx.

server { poslouchat 80; poslouchej [::]:80; název_serveru hakase-labs.io; return 301 https://$host$request_uri;}server { listen 443 ssl http2; poslouchej [::]:443 ssl http2; root /var/www/site01; index index.html index.php index.htm; název_serveru hakase-labs.io; error_log /var/log/nginx/hakase-error.log warning; ssl_certificate /etc/letsencrypt/live/hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/hakase-labs.io/privkey.pem; #SSL Configuration include snippets/ssl.conf; umístění ~ /.známý { povolit vše; } umístění / { try_files $uri $uri/ =404; } umístění =/favicon.ico { log_not_found off; access_log off; } umístění =/robots.txt { povolit vše; log_not_found off; access_log off; } umístění ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expiruje max; log_not_found off; }}

Uložte a ukončete.

Poznámka:

  • Změňte 'include snippets/ssl.conf;' čára. Pokud používáte Ubuntu, ponechte jej jako výchozí. A pokud používáte CentOS, změňte adresář na 'default.d/ssl.conf'

Pouze v systému Ubuntu

Povolte nový soubor virtuálního hostitele a otestujte konfiguraci a ujistěte se, že nedošlo k chybě.

ln -s /etc/nginx/sites-available/hakase-labs.io /etc/nginx/sites-enabled/
nginx -t

Nyní restartujte službu nginx.

systemctl restart nginx

Byl vytvořen nový virtuální hostitel s povoleným HTTPS a další konfigurací SSL.

Zkontrolujte pomocí příkazu netstat a v seznamu získáte port HTTPS 443.

netstat -plntu

Krok 6 – Testování

Otevřete webový prohlížeč a zadejte název své domény, moje je 'http://hakase-labs.io'.

A budete přesměrováni na připojení HTTPS.

Nyní přejděte na testovací web SSL „https://www.ssllabs.com/ssltest/“ a zadejte název své vlastní domény a počkejte na výsledky.

Následuje můj výsledek použití 'Doporučení Mozilla Ciphersuite'.

A následuje můj výsledek používání 'Cipher.li Ciphersuite Recommendation'.

Uvidíte, že všechny výsledky mají výsledky 'A+' a liší se pouze v 'Síle šifry' v doporučeních Mozilly a v doporučení Cipherli.st.

Chcete-li zkontrolovat sešívání OSCP a HSTS na serveru, posuňte stránku s výsledky testu a získáte výsledek, jak je uvedeno níže.

Pokud chcete zkontrolovat sešívání OSCP z příkazového řádku, zkontrolujte jej pomocí následujícího příkazu.

echo UKONČIT | openssl s_client -connect hakase-labs.io:443 -status 2> /dev/null | grep -A 17 'OCSP odpověď:' | grep -B 17 'Další aktualizace'

Pro testování HSTS to zkontrolujte pomocí příkazu curl níže.

curl -s -D- https://hakase-labs.io | grep -i Strict

Instalace a konfigurace webového serveru Nginx pomocí SSL Letsencrypt a také získání A+ z testu SSLabs byly úspěšně dokončeny.

Odkazy

  • https://community.letsencrypt.org/
  • https://mozilla.github.io/
  • https://cipherli.st/

Linux
  1. Jak nainstalovat Nextcloud s Nginx a nechat šifrovat SSL na Ubuntu 20.04 LTS

  2. Jak nainstalovat Magento 2 s Nginx a nechat šifrovat SSL na Ubuntu 20.04 LTS

  3. Jak nainstalovat Shopware s NGINX a nechat šifrovat na Ubuntu 18.04 LTS

  1. Jak nainstalovat Shopware s NGINX a Lets Encrypt na CentOS 7

  2. Jak nainstalovat Shopware s NGINX a Lets Encrypt na Fedoře 30

  3. Jak nainstalovat WonderCMS s Nginx a nechat šifrovat SSL na CentOS 7

  1. Jak nainstalovat Pico CMS s Nginx a Lets Encrypt na CentOS 7

  2. Jak nainstalovat Grav CMS s Nginx a nechat šifrovat na Ubuntu 18.04 LTS

  3. Jak nainstalovat WordPress s Nginx a nechat šifrovat SSL na CentOS 8