V online světě, který je neustále zaplavován bezpečnostními hrozbami, by mělo být zabezpečení vašeho webového serveru na prvním místě. Jedním ze způsobů zabezpečení vašeho webového serveru je implementace protokolu HTTPS na váš web pomocí SSL/TLS certifikátu. Certifikát SSL/TLS nejenže zabezpečuje vaše stránky šifrováním informací vyměňovaných mezi webovým serverem a prohlížeči uživatelů, ale také pomáhá při hodnocení Google.
V této příručce se dozvíte, jak zabezpečit webový server Apache (http) pomocí Let’s Encrypt SSL/TLS na RHEL 8.
Předpoklady
Zde je to, co potřebujete, než budete pokračovat:
- Instance serveru RHEL 8 s konfigurovaným uživatelem sudo.
- Plně kvalifikovaný název domény (FQDN) odkazující na veřejnou IP adresu vašeho serveru. V této příručce budeme používat název domény linuxtechgeek.info.
Krok 1) Nainstalujte Apache na RHEL 8
Prvním krokem je instalace webového serveru Apache. Protože Apache již existuje v úložišti AppStream společnosti Red Hat, můžete jej nainstalovat pomocí správce balíčků DNF následovně.
$ sudo dnf install -y httpd
Po instalaci spusťte webový server Apache a povolte jeho spuštění při spouštění.
$ sudo systemctl start httpd $ sudo systemctl enable httpd
Chcete-li ověřit, že Apache běží, spusťte příkaz:
$ sudo systemctl status httpd
Poznámka:V případě, že je spuštěn firewall, povolte následující porty Apache ve firewallu, spusťte
$ sudo firewall-cmd --add-port=80/tcp --permanent $ sudo firewall-cmd --add-port=443/tcp –permanent $ sudo firewall-cmd --realod
Nyní můžete přejít do svého webového prohlížeče a procházet svou doménu v adresním řádku.
Krok 2) Nainstalujte Certbot
Certbot je snadno použitelný opensource klient, který spravuje EFF (Electronic Frontier Foundation). Načte certifikát TLS z Lets Encrypt a nasadí jej na webový server. Díky tomu eliminuje potíže a bolesti spojené s implementací protokolu HTTPS pomocí certifikátu TLS.
Chcete-li nainstalovat Certbot a související balíčky, nejprve povolte EPEL (Extra Packages for Enterprise Linux).
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
Dále nainstalujte certbot a balíček mod_ssl následovně.
$ sudo dnf install certbot python3-certbot-apache mod_ssl
Krok 3) Vytvořte soubor virtuálního hostitele Apache
Virtuální hostitelé umožňují hostovat více domén na jednom webovém serveru.
Prvním krokem je vytvoření adresáře v kořenovém adresáři dokumentu, do kterého budou vstupovat všechny soubory webu.
$ sudo mkdir -p /var/www/linuxtechgeek.info/html
Nastavte vlastnictví adresáře na uživatele Apache.
$ sudo chown -R apache:apache /var/www/linuxtechgeek.info/html
Ujistěte se, že jste nastavili oprávnění k adresáři podle obrázku.
$ sudo chmod -R 755 /var/www
S adresářem domény se všemi nastavenými vlastnictvími a oprávněními vytvoříme soubor virtuálního hostitele v adresáři /etc/httpd/conf.d/.
$ sudo vi /etc/httpd/conf.d/linuxtechgeek.info.conf
Vložte následující řádky a buďte opatrní, abyste použili svůj vlastní název domény.
<virtualhost *:80> ServerName linuxtechgeek.info ServerAlias www.linuxtechgeek.info DocumentRoot /var/www/linuxtechgeek.info/html ErrorLog /var/log/httpd/linuxtechgeek.info-error.log CustomLog /var/log/httpd/linuxtechgeek.info-access.log combined </virtualhost>
Uložte a ukončete soubor virtualhost.
Abychom otestovali, zda virtuální hostitel funguje, vytvoříme vzorový soubor HTML v adresáři webových stránek.
$ sudo vi /var/www/linuxtechgeek.info/html/index.html
Vložte následující ukázkový obsah. Neváhejte jej upravit podle svých preferencí.
<!DOCTYPE html> <html> <body> <h1> Welcome to Linuxtechi virtualhost </h1> </body> </html>
Uložte a ukončete soubor HTML. Chcete-li uložit všechny provedené změny, restartujte webový server Apache.
$ sudo systemctl restart httpd
Nyní procházejte svou doménu ještě jednou a tentokrát byste místo výchozí uvítací stránky Apache měli vidět vlastní HTML stránku, kterou jste právě nakonfigurovali. Toto je důkaz, že soubor virtuálního hostitele funguje.
Krok 4) Zabezpečte Apache pomocí Let's Encrypt Certificate
Posledním krokem je načtení a nasazení certifikátu Let’s Encrypt. Chcete-li to provést, jednoduše spusťte příkaz:
$ sudo certbot --apache
Po provedení příkazu vás certbot provede řadou výzev. Budete vyzváni k zadání vaší e-mailové adresy a budete požádáni o souhlas s podmínkami. Budete také dotázáni, zda si přejete dostávat pravidelné e-maily o novinkách EFF a kampaních o digitální svobodě.
Až budete vyzváni k zadání názvů, pro které chcete aktivovat HTTPS, stačí stisknout ENTER a certifikát použijete na všechny poskytnuté domény.
Certbot přistoupí k načtení certifikátu TLS z Let’s Encrypt a jeho implementaci na váš webový server. Certbot poté vytiskne cestu, kam byly certifikát a klíč uloženy, a také cestu nasazení certifikátu pro vaše domény.
Chcete-li ověřit, že Let’s encrypt bylo úspěšně nasazeno, obnovte prohlížeč. Tentokrát si na začátku řádku URL všimnete ikony visacího zámku, která označuje, že web byl úspěšně zašifrován.
Kliknutím na ikonu visacího zámku zobrazíte další podrobnosti
Kromě toho můžete provést test ssl v laboratořích ssl a digitálně ověřit váš certifikát. Pokud všechno šlo dobře, měli byste dostat známku A.
Krok 5) Zašifrujeme obnovu certifikátu
Certifikát Let’s Encrypt má platnost pouze 90 dní. Několik týdnů před vypršením platnosti obvykle dostanete od EFF upozornění o blížícím se vypršení platnosti certifikátu a nutnosti obnovit certifikát.
Certifikát můžete ručně obnovit spuštěním příkazu:
$ sudo certbot renew
Chcete-li simulovat obnovu certifikátu, spusťte příkaz:
$ sudo certbot renew --dry-run
To pouze napodobuje skutečné obnovení certifikátu a neprovádí žádnou akci.
Chcete-li automatizovat obnovu certifikátu, otevřete soubor crontab
$ crontab -e
Zadejte úlohu cron, která se bude spouštět každou půlnoc.
0 0 * * * /usr/bin/certbot renew> /dev/null 2>&1
Závěr
Doufáme, že nyní můžete bez problémů nasadit certifikát Let’s Encrypt na RHEL pro zabezpečení webového serveru Apache.
Přečtěte si také :Jak zpevnit a zabezpečit webový server NGINX v systému Linux