Vyhledávání na webu

Jak vytvořit místní certifikát SSL s vlastním podpisem na CentOS 8


SSL (Secure Socket Layer) a jeho vylepšená verze TLS (Transport Socket Layer) jsou bezpečnostní protokoly které se používají k zabezpečení webového provozu odesílaného z webového prohlížeče klienta na webový server.

Certifikát SSL je digitální certifikát, který vytváří zabezpečený kanál mezi prohlížečem klienta a webovým serverem. Citlivá a důvěrná data, jako jsou údaje o kreditních kartách, přihlašovací údaje a další vysoce soukromé informace, jsou přitom šifrována, což zabraňuje hackerům odposlouchávat a ukrást vaše informace.

Co je certifikát SSL s vlastním podpisem?

Certifikát SSL s vlastním podpisem, na rozdíl od jiných SSL certifikátů, které jsou podepsány a důvěryhodné Certifikační autoritou (CA), je certifikát podepsaný jednotlivec, který jej vlastní.

Jeho vytvoření je zcela zdarma a je to levný způsob šifrování vašeho lokálně hostovaného webového serveru. Použití certifikátu SSL s vlastním podpisem se však v produkčním prostředí důrazně nedoporučuje z následujících důvodů:

  1. Vzhledem k tomu, že certifikát SSL s vlastním podpisem není podepsán Certifikační autoritou, generuje ve webových prohlížečích upozornění na potenciální riziko, pokud se rozhodnou pokračovat. Tato upozornění jsou nežádoucí a odradí uživatele od návštěvy vašeho webu, což může vést k poklesu webového provozu. Jako řešení těchto výstrah organizace obvykle vyzývají své zaměstnance, aby výstrahy jednoduše ignorovali a pokračovali vpřed. To může způsobit nebezpečný zvyk mezi uživateli, kteří se mohou rozhodnout tato upozornění na jiných online stránkách nadále ignorovat a potenciálně se stát obětí phishingových stránek.
  2. Certifikáty s vlastním podpisem mají nízkou úroveň zabezpečení, protože implementují nízkoúrovňové šifrovací technologie a hash. Úroveň zabezpečení tedy nemusí být na stejné úrovni jako standardní bezpečnostní zásady.
  3. Navíc neexistuje žádná podpora pro funkce infrastruktury veřejného klíče (PKI).

To znamená, že použití certifikátu SSL s vlastním podpisem není špatný nápad pro testování služeb a aplikací na místním počítači, který vyžaduje šifrování TLS/SSL.

V této příručce se dozvíte, jak nainstalovat místní certifikát SSL s vlastním podpisem na webový server Apache localhost na serverovém systému CentOS 8.

Předpoklady:

Než začnete, ujistěte se, že máte následující základní požadavky:

  1. Instance serveru CentOS 8.
  2. Na serveru nainstalován webový server Apache
  3. Název hostitele již nakonfigurovaný a definovaný v souboru /etc/hosts. V této příručce použijeme pro náš server název hostitele tecmint.local.

Krok 1: Instalace Mod_SSL na CentOS

1. Chcete-li začít, musíte ověřit, zda je nainstalován a spuštěn webový server Apache.

sudo systemctl status httpd

Zde je očekávaný výstup.

Pokud webový server neběží, můžete jej spustit a povolit při bootování pomocí příkazu.

sudo systemctl start httpd
sudo systemctl enable httpd

Poté můžete potvrdit, zda je Apache v provozu.

2. K povolení instalace a nastavení místního certifikátu SSL s vlastním podpisem je vyžadován balíček mod_ssl.

sudo dnf install mod_ssl

Po instalaci můžete jeho instalaci ověřit spuštěním.

sudo rpm -q mod_ssl

Také se ujistěte, že je nainstalován balíček OpenSSL (OpenSSL je v systému CentOS 8 standardně nainstalován).

sudo rpm -q openssl 

Krok 2: Vytvořte místní certifikát SSL s vlastním podpisem pro Apache

3. S webovým serverem Apache a všemi nezbytnými předpoklady musíte vytvořit adresář, ve kterém budou uloženy kryptografické klíče.

V tomto příkladu jsme vytvořili adresář /etc/ssl/private.

sudo mkdir -p /etc/ssl/private

Nyní vytvořte klíč a soubor místního certifikátu SSL pomocí příkazu:

sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout tecmint.local.key -out tecmint.local.crt

Podívejme se, co vlastně znamenají některé možnosti v příkazu:

  • req -x509 – Označuje, že používáme x509 Certificate Signing Request (CSR).
  • -nodes – Tato možnost dává OpenSSL pokyn, aby vynechal šifrování certifikátu SSL pomocí přístupové fráze. Cílem je umožnit Apache, aby mohl číst soubor bez jakéhokoli zásahu uživatele, což by nebylo možné, pokud by byla poskytnuta přístupová fráze.
  • -newkey rsa:2048 – Označuje, že chceme současně vytvořit nový klíč a nový certifikát. Část rsa:2048 znamená, že chceme vytvořit 2048bitový klíč RSA.
  • -keyout – Tato možnost určuje, kam se má po vytvoření uložit vygenerovaný soubor soukromého klíče.
  • -out – Tato možnost určuje, kam umístit vytvořený certifikát SSL.

Krok 3: Nainstalujte místní certifikát SSL s vlastním podpisem na Apache

4. Po vygenerování souboru certifikátu SSL je nyní čas certifikát nainstalovat pomocí nastavení webového serveru Apache. Otevřete a upravte konfigurační soubor /etc/httpd/conf.d/ssl.conf.

sudo vi /etc/httpd/conf.d/ssl.conf

Ujistěte se, že mezi značkami virtuálního hostitele jsou následující řádky.

<VirtualHost *:443>
    ServerAdmin [email 
    ServerName www.tecmint.local
    ServerAlias tecmint.local
 
    DocumentRoot /var/www/html
 
    SSLEngine on
    SSLCertificateFile /etc/ssl/private/tecmint.local.crt
    SSLCertificateKeyFile /etc/ssl/private/tecmint.local.key
</VirtualHost>

Uložte a ukončete soubor. Aby se změny projevily, restartujte Apache pomocí příkazu:

sudo systemctl restart httpd

5. Aby externí uživatelé měli přístup k vašemu serveru, musíte otevřít port 443 přes bránu firewall, jak je znázorněno.

sudo firewall-cmd --add-port=443 --zone=public --permanent
sudo firewall-cmd --reload

Krok 3: Testování místního certifikátu SSL s vlastním podpisem na Apache

Po provedení všech konfigurací spusťte prohlížeč a procházejte adresu serveru pomocí adresy IP serveru nebo názvu domény pomocí protokolu https.

Pro zefektivnění testování můžete zvážit přesměrování protokolu HTTP na HTTPS na webovém serveru Apache. Je to proto, aby při každém procházení domény v prostém HTTP byla automaticky přesměrována na protokol HTTPS.

Procházejte tedy doménu nebo IP svého serveru

https://domain_name/

Zobrazí se upozornění, že připojení není zabezpečené, jak je znázorněno. To se bude lišit od jednoho prohlížeče k druhému. Jak asi tušíte, upozornění je způsobeno tím, že certifikát SSL není podepsán Certifikační autoritou a prohlížeč to zaregistruje a oznámí, že certifikátu nelze důvěřovat.

Chcete-li přejít na svůj web, klikněte na kartu „Pokročilé“, jak je uvedeno výše:

Dále přidejte výjimku do prohlížeče.

Nakonec znovu načtěte prohlížeč a všimněte si, že nyní můžete přistupovat k serveru, i když na řádku URL se zobrazí varování, že stránka není plně zabezpečená ze stejného důvodu, že certifikát SSL je podepsán sám sebou a není podepsán společností Certifikační autorita.

Doufáme, že nyní můžete pokračovat a vytvořit a nainstalovat certifikát SSL s vlastním podpisem na webový server Apache localhost na CentOS 8.