Zabezpečte Apache pomocí šifrování certifikátu SSL na CentOS 8
Zabezpečení vašeho webového serveru je vždy jedním z klíčových faktorů, které byste měli zvážit před spuštěním svého webu. Bezpečnostní certifikát je kritický pro zabezpečení provozu odesílaného z webových prohlížečů na webové servery, a přitom bude inspirovat uživatele k výměně dat s vaším webem s plným vědomím, že odesílaný provoz je zabezpečen.
Ve většině případů se bezpečnostní certifikáty platí a obnovují se ročně. Certifikát Let’s Encrypt je bezplatná, otevřená a automatizovaná certifikační autorita, kterou můžete použít k šifrování svého webu. Platnost certifikátu vyprší po každých 90 dnech a automaticky se obnovuje zcela zdarma.
Doporučená četba: Jak zabezpečit Nginx pomocí Let's Encrypt na CentOS 8
V tomto článku vám ukážeme, jak nainstalovat Let's Encrypt Certificate pomocí Certbot pro webový server Apache a později nakonfigurovat certifikát pro automatické obnovení na CentOS 8.
Předpoklady
Než začnete, ujistěte se, že máte na svém místě následující:
1. Instance serveru CentOS 8 s nainstalovaným a spuštěným webovým serverem Apache HTTP. Můžete potvrdit, že váš webový server Apache je v provozu.
sudo dnf install httpd
sudo systemctl status httpd
2. Plně kvalifikovaný název domény (FQDN) odkazující na veřejnou IP adresu vašeho webového serveru u vašeho poskytovatele webhostingu DNS. Pro tuto příručku použijeme linuxtechwhiz.info
odkazující na IP serveru 34.67.63.136
.
Krok 1. Nainstalujte Certbot v CentOS 8
Certbot je klient, který automatizuje instalaci bezpečnostního certifikátu. Načte certifikát z Let’s encrypt autority a bez větších problémů jej nasadí na váš webový server.
Certbot je zcela zdarma a umožní vám nainstalovat certifikát interaktivním způsobem vygenerováním pokynů na základě konfigurace vašeho webového serveru.
Před stažením certbota nejprve nainstalujte balíčky, které jsou nezbytné pro konfiguraci šifrovaného připojení.
Začneme instalací úložiště EPEL, které poskytuje vysoce kvalitní doplňkové balíčky pro systémy založené na RHEL:
sudo dnf install epel-release
Dále nainstalujte balíčky mod_ssl a openssl.
sudo dnf install mod_ssl openssl
Po instalaci všech závislostí nainstalujte Certbot a modul Apache pro Certbot.
sudo dnf install certbot python3-certbot-apache
Příkaz nainstaluje Certbot, modul Apache pro Certbot a další závislosti.
Krok 2: Vytvořte virtuálního hostitele Apache
Dalším krokem bude vytvoření virtuálního hostitelského souboru pro naši doménu – linuxtechwhiz.info
. Začněte tím, že nejprve vytvoříte kořen dokumentu, kam umístíte soubory HTML.
sudo mkdir /var/www/linuxtechwhiz.info.conf
Vytvořte testovací soubor index.html
podle obrázku.
sudo echo “<h1>Welcome to Apache HTTP server</h1>” > /var/www/linuxtechwhiz.info/index.html
Dále vytvořte soubor virtuálního hostitele podle obrázku.
sudo vim /etc/httpd/conf.d/linuxtechwhiz.info
Přiložte konfiguraci níže.
<VirtualHost *:443>
ServerName linuxtechwhiz.info
ServerAlias www.linuxtechwhiz.info
DocumentRoot /var/www/linuxtechwhiz.info/
<Directory /var/www/linuxtechwhiz.info/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
</VirtualHost>
Uložit a odejít.
Přiřaďte oprávnění kořenovému adresáři dokumentu, jak je znázorněno.
sudo chown -R apache:apache /var/www/linuxtechwhiz.info
Aby se změny projevily, restartujte službu Apache.
sudo systemctl restart httpd
Krok 3: Nainstalujte Let’s Encrypt SSL certifikát na CentOS 8
Nyní spusťte certbot podle obrázku a zahajte instalaci certifikátu Let’s Encrypt.
sudo certbot --apache -d domain.com
V našem případě to bude:
sudo certbot --apache -d linuxtechwhiz.info
Příkaz vás provede řadou výzev, které vám umožní nakonfigurovat Lets Encrypt pro vaši doménu. Nezapomeňte uvést svou e-mailovou adresu, přijmout podmínky služby a zadat názvy domén, které chcete používat protokol HTTPS, což je šifrovaná verze HTTP.
Pokud vše proběhlo v pořádku, měli byste na konci obdržet blahopřejnou zprávu s informací, že váš web byl zabezpečen pomocí Let’s Encrypt certifikátu. Zobrazí se také platnost vašeho certifikátu – což je obvykle po 90 dnech po nasazení.
Nyní se vraťte do souboru virtuálního hostitele a připojte následující řádky konfigurace.
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
Uložit a odejít.
Konečná konfigurace virtuálního hostitele Apache bude vypadat nějak takto:
<VirtualHost *:443>
ServerName linuxtechwhiz.info
ServerAlias www.linuxtechwhiz.info
DocumentRoot /var/www/linuxtechwhiz.info/
<Directory /var/www/linuxtechwhiz.info/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
</VirtualHost>
Ještě jednou restartujte Apache.
sudo systemctl restart httpd
Krok 4: Ověření certifikátu Let's Encrypt SSL
Chcete-li ověřit, že vše funguje, spusťte prohlížeč a navštivte IP adresu svého serveru. Nyní byste měli vidět symbol visacího zámku na začátku adresy URL.
Chcete-li získat další podrobnosti, klikněte na symbol zámku a v zobrazené rozbalovací nabídce klikněte na možnost „Certifikát“.
Podrobnosti certifikátu se zobrazí v dalším vyskakovacím okně.
Můžete také otestovat svůj server na https://www.ssllabs.com/ssltest/
a váš web by měl získat známku ‚A‘
, jak je znázorněno.
Krok 5: Automatické obnovení Let's Encrypt SSL Certificate
Let’s Encrypt je platné pouze 90 dní. Proces obnovy obvykle provádí balíček certbot, který přidá skript pro obnovení do adresáře /etc/cron.d. Skript se spouští dvakrát denně a automaticky obnoví jakýkoli certifikát do 30 dnů po vypršení platnosti.
Chcete-li otestovat proces automatického obnovení, proveďte zkušební běh pomocí certbot.
sudo /usr/local/bin/certbot-auto renew --dry-run
Pokud nebyly zjištěny žádné chyby, znamená to, že můžete začít.
Tím se dostáváme na konec tohoto průvodce. V této příručce jsme si ukázali, jak můžete pomocí certbota nainstalovat a nakonfigurovat Certifikát Let’s Encrypt na webovém serveru Apache běžícím na systému CentOS 8.