Vyhledávání na webu

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.