Nginx

Nastavení Nginx SSL v Linuxu

Nastavení Nginx SSL v Linuxu

SSL (zkratka pro Secure Socket Layer) je webový protokol, který zajišťuje šifrovaný přenos mezi serverem a klientem. Server a klienti bezpečně přenášejí provoz bez rizika interpretace komunikace třetími stranami. Pomáhá také klientovi ověřit identitu webu, se kterým komunikuje.

V tomto příspěvku popíšeme, jak nastavit SSL pro Nginx. Postup předvedeme pomocí certifikátu podepsaného svým držitelem. Certifikát podepsaný svým držitelem pouze šifruje připojení, ale neověří identitu vašeho serveru. Proto by měl být používán pouze pro testovací prostředí nebo pro interní služby LAN. Pro produkční prostředí je lepší použít certifikáty podepsané CA (certifikační autorita).

Předpoklady

U tohoto příspěvku byste měli mít následující předpoklady:

Zde vysvětlený postup byl proveden dne Debian 10 (Buster) stroj.

Krok 1: Generování certifikátu podepsaného svým držitelem

Naším prvním krokem bude vygenerování certifikátu podepsaného svým držitelem. Vydáním níže uvedeného příkazu v Terminálu vygenerujte CSR (Certificate Signing Request) a klíč:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout / etc / ssl / private / selfsigned-nginx.key-out / etc / ssl / certs / selfsigned-nginx.crt

Zobrazí se výzva k zadání některých informací, jako je název vaší země, stát, lokalita, obecný název (název vaší domény nebo adresa IP) a e-mailová adresa.

Ve výše uvedeném příkazu vytvoří OpenSSL následující dva soubory:

Nyní vytvořte dhparam.soubor PEM pomocí níže uvedeného příkazu:

$ sudo openssl dhparam -out / etc / ssl / certs / dhparam.pem 2048

Krok 2: Konfigurace Nginx pro použití SSL

V předchozím kroku jsme vytvořili CSR a klíč. Nyní v tomto kroku nakonfigurujeme Nginx tak, aby používal SSL. Za tímto účelem vytvoříme fragment konfigurace a přidáme informace o našich souborech certifikátu SSL a umístění klíčů.

Vydáním níže uvedeného příkazu v Terminálu vytvořte nový fragment konfigurace podepsaný sám sebou.soubor conf v / etc / nginx / snippets.

$ sudo nano / etc / nginx / snippets / self-signed.konf

V souboru přidejte následující řádky:

ssl_certificate / etc / ssl / certs / selfsigned-nginx.crt;
ssl_certificate_key / etc / ssl / private / selfsigned-nginx.klíč;

The ssl_certificate je nastaven na selfsigned-nginx.crt (soubor certifikátu), zatímco ssl_certificate_key je nastaven na selfsigned-nginx.klíč (klíčový soubor).

Uložte a zavřete podepsaný sám sebou.konf soubor.

Nyní vytvoříme další fragmentový soubor ssl-params.konf a nakonfigurovat některá základní nastavení SSL. Vydáním níže uvedeného příkazu v Terminálu upravte ssl-params.konf soubor:

$ sudo nano / etc / nginx / snippets / ssl-params.konf

Přidejte do souboru následující obsah:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers na;
ssl_dhparam / etc / ssl / certs / dhparam.pem;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512: DHE-RSA-AES256-GCM-SHA512: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES256-GCM-SHA384: ECDHE-RSA-SHA384: ECDHE-RSA
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
sdílená ssl_session_cache: SSL: 10 m;
ssl_session_tickets off;
# ssl_stapling na;
# ssl_stapling_verify on;
překladač 8.8.8.8 8.8.4.4 platné = 300 s;
resolver_timeout 5 s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode = block";

Protože nepoužíváme certifikát podepsaný CA, deaktivovali jsme sešívání SSL. Pokud používáte certifikát podepsaný CA, odkomentujte ssl_stapling vstup.

Krok 3: Konfigurace Nginx pro použití SSL

Nyní otevřeme konfigurační soubor bloku serveru Nginx, abychom provedli nějaké konfigurace.  V tomto kroku budeme předpokládat, že jste již nastavili blok serveru, který bude podobný tomuto:

server
poslouchat 80;
poslouchat [::]: 80;
root / var / www / test.org / html;
index index.html index.index htm.nginx-debian.html;
test název_serveru.org www.test.org;
místo /
try_files $ uri $ uri / = 404;

Chcete-li otevřít konfigurační soubor bloku serveru Nginx, použijte následující příkaz:

$ sudo nano / etc / nginx / sites-available / test.org

Nyní upravte stávající serveru blok, aby to vypadalo takto:

server
poslouchat 443 SSL;
poslouchat [::]: 443 ssl;
zahrnout úryvky / podepsaný sám sebou.conf;
zahrnout úryvky / ssl-params.conf;
root / var / www / test.org / html;
index index.html index.index htm.nginx-debian.html;
test název_serveru.org www.test.org;

Ve výše uvedených konfiguracích jsme také přidali fragmenty SSL podepsaný sám sebou.konf a ssl-params.konf které jsme nakonfigurovali dříve.

Dále přidejte a druhý server blok.

server
poslouchat 80;
poslouchat [::]: 80;
test název_serveru.org www.test.org;
vrátit 302 https: // $ název_serveru $ request_uri;

Ve výše uvedené konfiguraci, návrat 302 přesměruje HTTP na HTTPS.

Poznámka: Nezapomeňte vyměnit test.org s vaším vlastním názvem domény. Nyní soubor uložte a zavřete.

Krok 4: Povolte přenos SSL prostřednictvím brány firewall

Pokud je ve vašem systému povolena brána firewall, budete přes ni muset povolit přenos SSL.  Nginx vám poskytuje tři různé profily s ufw. Můžete je zobrazit pomocí níže uvedeného příkazu v Terminálu:

$ sudo ufw seznam aplikací

Uvidíte následující výstup se třemi profily pro provoz Nginx.

Ve firewallu budete muset povolit profil „Nginx Full“. Použijte následující příkaz:

$ sudo ufw povolit 'Nginx Full'

Chcete-li ověřit, zda byl profil povolen v bráně firewall, použijte následující příkaz:

stav $ sudo ufw

Krok 5: Vyzkoušejte konfigurační soubor NGINX

Nyní otestujte konfigurační soubor Nginx pomocí níže uvedeného příkazu v Terminálu:

$ sudo nginx -t

Měli byste vidět níže uvedený výstup.


Nyní vytvořte symbolické propojení mezi dostupnými a povolenými weby:

$ ln -s / etc / nginx / sites-available / test.com / etc / nginx / sites-enabled /

Poté restartujte službu Nginx a použijte změny konfigurace. Použijte následující příkaz:

$ sudo systemctl restart nginx

Krok 6: Vyzkoušejte SSL

Chcete-li otestovat SSL, přejděte na následující adresu:

https: // doména nebo IP adresa

Protože jsme nastavili certifikát podepsaný svým držitelem, zobrazí se nám varování, že připojení není zabezpečené. Při používání prohlížeče Mozilla Firefox se zobrazí následující stránka.

Klikněte na ikonu Pokročilý knoflík.

Klepněte na Přidat výjimku.

Poté klikněte Potvrďte bezpečnostní výjimku.

Nyní uvidíte svůj web HTTPS, ale s varovným signálem (zámek se žlutým varovným signálem) o zabezpečení vašeho webu.

Zkontrolujte také, zda přesměrování funguje správně, a to pomocí přístupu k vaší doméně nebo adrese IP pomocí protokolu http.

http: // doména nebo IP adresa

Pokud váš web nyní automaticky přesměrovává na HTTPS, znamená to, že přesměrování fungovalo správně. Chcete-li trvale nakonfigurovat přesměrování, upravte konfigurační soubor blokování serveru pomocí následujícího příkazu v Terminálu:

$ sudo nano / etc / nginx / sites-available / test.org

Nyní změňte návratnost 302 vrátit 301 do souboru a poté jej uložte a zavřete.

Takto můžete nastavit SSL pro Nginx v systému Debian 10. Nastavili jsme certifikát s vlastním podpisem pro demonstraci. Pokud se nacházíte v produkčním prostředí, vždy vyhledejte certifikát CA.

Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...
Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...
Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...