GNU/Linux >> Znalost Linux >  >> Rocky Linux

Jak nainstalovat Let’s Encrypt SSL pro NGINX na Rocky Linux 8

Zabezpečení je jedním z hlavních problémů vlastníků webových stránek, zejména pokud provozujete obchod s elektronickým obchodem nebo web, který přijímá důvěrné informace uživatelů, jako jsou uživatelská jména a hesla. Prostý protokol HTTP je nejistý, protože data jsou odesílána v prostém textu a hackeři mohou odposlouchávat komunikaci odesílanou na webový server a z něj.

K překonání tohoto rizika se doporučuje zabezpečit webový server pomocí TLS/SSL certifikátu. Jedná se o kryptografický digitální certifikát, který šifruje váš webový server a zajišťuje šifrování dat vyměňovaných s webovým serverem.

Let's Encrypt SSL certifikát je digitální certifikát poskytovaný Let's Encrypt CA (Certifikační autorita) k zabezpečení webového serveru. Jedná se o bezplatný certifikát TLS/SSL, který je platný pouze 90 dní, poté je před vypršením platnosti vyžadováno obnovení. Je to výhodné pro začínající podniky nebo jednotlivce, kteří si nemohou dovolit prémiový certifikát SSL pro své blogy nebo webové stránky.

V této příručce si ukážeme, jak si můžete nainstalovat certifikát Let’s Encrypt SSL/TLS pro NGINX na Rocky Linux 8

Co potřebujete

Nejprve se ujistěte, že máte instanci serveru Rocky Linux 8 v cloudu nebo na premise a již nakonfigurovanou pomocí uživatele sudo.

Dále se ujistěte, že máte plně kvalifikovaný název domény (FQDN), který ukazuje na veřejnou IP adresu vašeho serveru. Chcete-li toho dosáhnout, přejděte ke svému registrátorovi domény a v nastavení DNS nakonfigurujte záznam A tak, aby odkazoval název domény na veřejnou IP adresu serveru. Níže je úryvek mého záznamu A.

Pro tuto příručku používáme název domény linuxtechgeek.info, který ukazuje na IP adresu serveru 34.134.239.201.

S tím, že to stojí z cesty, pojďme začít!

Krok 1)  Nainstalujte webový server Nginx

Začneme instalací webového serveru Nginx na Rocky 8. Nejprve však upgradujme systémový balíček a aktualizujeme repozitáře.

$ sudo dnf update

Aktualizace může chvíli trvat, takže buďte trpěliví, dokud nebude dokončena.

Po dokončení upgradu jednou restartujte systém a poté nainstalujte webový server nginx následovně:

$ sudo dnf install nginx

Ve výchozím nastavení se nginx nespouští automaticky. Takže jděte na další míli a spusťte službu nginx.

$ sudo systemctl start nginx

Dále povolte spuštění webového serveru při startu nebo restartu.

$ sudo systemctl enable nginx

Webový server by nyní měl běžet podle očekávání a naslouchat na portu 80. Můžete to potvrdit spuštěním příkazu

$ sudo systemctl status nginx

Můžete si to ověřit i z webového prohlížeče. Nejprve však povolte provoz HTTP (jak HTTP, tak HTTPS) na bráně firewall spuštěním zobrazených příkazů

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

Poté znovu načtěte firewall, aby se změny projevily.

$ sudo firewall-cmd --reload

Poté vyhledejte IP adresu nebo název domény svého serveru

http://název_domény

Krok 2)  Vytvořte kořenový adresář dokumentu pro doménu

Dokončili jsme instalaci webového serveru. Dalším krokem je vytvoření adresáře, který bude obsahovat soubory domény. Vytvoříme adresář domény v cestě linuxtechgeek.info, jak je znázorněno pomocí příkazu mkdir

$ sudo mkdir -p /var/www/linuxtechgeek.info/html

Kořen dokumentu domény je místo, kde byste našli soubory webových stránek včetně HTML, CSS, JavaScriptu a obrázků. Pro účely demonstrace vytvoříme jednoduchý soubor index.html.

$ sudo vi /var/www/linuxtechgeek.info/html/index.html

Dále vložte následující ukázkový kód HTML a uložte změny.

<!DOCTYPE html>
<html>
    <head>
        <title>Welcome to linuxtechgeek.info</title>
    </head>
    <body>
  <h1>Hey Guys! Our Nginx server block is working.</h1>
    </body>
</html>

Poté pomocí příkazu chown nastavte vlastnictví adresáře domény následovně, abyste předešli problémům se získáváním oprávnění.

$ sudo chown -R nginx /var/www/linuxtechgeek.info/

Dále nastavte oprávnění tak, aby skupinoví a globální uživatelé měli práva ke čtení a spouštění souborů domény.

$ sudo chmod -R 755 /var/www/linuxtechgeek.info/

Dokončili jsme konfiguraci kořenového adresáře dokumentu pro doménu a nastavení správného vlastnictví a oprávnění. Pokračujme a nakonfigurujeme soubor bloku serveru.

Krok 3)  Vytvořte blok serveru Nginx

Blok serveru Nginx je ekvivalentem virtuálního hostitele Apache. Blok serveru je místo, kde definujete nastavení webu a říkáte webovému serveru nginx, kde má najít soubory domény.

Konfigurační soubor bloku serveru je vytvořen v adresáři /etc/nginx/conf.d. Vytvoříme ten náš ve stejném adresáři následovně.

$ sudo vi /etc/nginx/conf.d/linuxtechgeek.info.conf

Zkopírujte a vložte následující řádky. Nezapomeňte nahradit název domény linuxtechgeek.info svou vlastní doménou.

server {
    listen 80;
    server_name linuxtechgeek.info www.linuxtechgeek.info;
    root /var/www/linuxtechgeek.info/html;
    index index.php index.html index.htm;
    access_log /var/log/nginx/linuxtechgeek.info.access.log;
    error_log /var/log/nginx/linuxtechgeek.info.error.log;
}

Uložte změny a ukončete soubor blokování serveru.

Poté potvrďte, že jsou všechny konfigurace Nginx v pořádku. Pokud je vše v pořádku, měl by se zobrazit výstup.

$ sudo nginx -t

Aby si Nginx byl vědom všech změn, včetně kořenového adresáře dokumentu domény a souboru bloku serveru, restartujte webový server.

$ sudo systemctl restart nginx

Poté potvrďte provozní stav Nginx.

$ sudo systemctl status nginx

Dále nastavte SELinux na permisivní režim pomocí příkazu:

$ sudo setenforce permissive

Chcete-li potvrdit, že je nastaven na permisivní režim, spusťte příkaz:

$ sudo getenforce

Spuštěním příkazu pod sed trvale nastavíte režim selinux jako povolený.

$ sudo sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux

Chcete-li potvrdit, že soubor blokování serveru byl správně nakonfigurován, znovu vyhledejte název své domény.

http://název_domény

Měli byste obdržet kladné potvrzení, jak je uvedeno níže.

Krok 4)  Nainstalujte Certbot

Zbývá pouze nainstalovat Let’s Encrypt a zabezpečit webový server Nginx. Abychom toho dosáhli, musíme nainstalovat certbot. Certbot, napsaný v Pythonu a vyvinutý nadací Electronic Frontier Foundation, je plně vybavený klient pro Let’s Encrypt CA. Spouští se na webovém serveru a umožňuje vám automaticky nastavit SSL certifikát pro váš webový server jediným příkazem.

Nejprve nainstalujte úložiště EPEL, které poskytuje další a vysoce kvalitní balíčky pro distribuce založené na RHEL.

$ sudo dnf install -y epel-release

Po instalaci nainstalujte certbot a modul certbot pro Nginx.

$ sudo dnf install certbot python3-certbot-nginx

Tím se nainstaluje certbot, modul certbot pro řadu dalších balíčků a závislostí Nginx.

Krok 4)  Nainstalujte certifikát Let’s Encrypt SSL/TLS

Nakonec spusťte klienta certbot pro instalaci certifikátu SSL

$ sudo certbot --nginx

To vás provede řadou výzev. Nejprve zadejte e-mailovou adresu, kterou bude EFF používat k zasílání aktualizací a aktualizací zabezpečení. Poté přijměte podmínky služby stisknutím „Y“. Pokud chcete, můžete stisknout „Y“, abyste umožnili EFF zasílat vám pravidelné aktualizace týkající se jejich úsilí při zabezpečení webu, zpráv a kampaní. Nakonec vyberte názvy domén, které chcete zašifrovat. V našem případě jsme stisknutím tlačítka ‚ENTER‘ vybrali všechny názvy domén.

Certbot načte certifikát SSL/TLS a nasadí jej pro zadané názvy domén. To aktivuje protokol HTTPS pro vaši doménu, ve skutečnosti šifruje provoz vyměňovaný s webovým serverem.

Chcete-li potvrdit, že HTTPS bylo povoleno, vraťte se do prohlížeče a znovu jej načtěte. Tentokrát si v řádku URL všimnete ikony visacího zámku – indikace, že je web šifrován.

Klikněte na ikonu a poté vyberte ‚Certifikát‘.

Zobrazí se podrobnosti o certifikátu, jak je uvedeno

Dále můžete otestovat stav svého webového serveru na SSL Labs, což je stránka, která provádí hlubokou analýzu webového serveru přes internet. Měli byste získat hodnocení A, jak je uvedeno.

Krok 5) Správa obnovení certifikátu SSL

Certifikát Let’s Encrypt je platný 90 dní, nicméně Let’s encrypt doporučuje obnovovat certifikát každých 60 dní. E-mailová upozornění vám budou zasílána posledních 20 dní, jejichž platnost vyprší, přičemž frekvence se zvyšuje za posledních 10 dní.

Certifikát můžete ručně obnovit následovně.

$ sudo certbot renew

Naštěstí můžete obnovu automatizovat přidáním nové úlohy cron. Otevřete tedy soubor crontab.

$ crontab -e

A přidejte zobrazený řádek. Uložte změny a ukončete.

0 0 * * * /usr/bin/certbot renew > /dev/null 2>&1

To je vše. Děkuji, že jste se dostali až sem. Ukázali jsme, jak si můžete nainstalovat certifikát Let’s Encrypt SSL pro Nginx na Rocky Linux 8.

Přečtěte si také :Jak nastavit vysoce dostupný NGINX pomocí KeepAlived v Linuxu


Rocky Linux
  1. Jak nainstalovat MariaDB 10.6 na Rocky Linux 8

  2. Jak nainstalovat Varnish 7 pro Nginx na Rocky Linux 8

  3. Jak nainstalovat MariaDB na Rocky Linux 8

  1. Jak nainstalovat Docker na Rocky Linux 8

  2. Jak nainstalovat Cockpit na Rocky Linux 8

  3. Jak nainstalovat GitLab na Rocky Linux 8

  1. Jak nainstalovat Let's Encrypt SSL v Nginx na Debian 11

  2. Jak nainstalovat FreeIPA na Rocky Linux 8

  3. Jak nainstalovat Podman na Rocky Linux 8