Ve světě IT je zabezpečení vašich infrastrukturních aplikací a domén zásadní. A abyste dosáhli ideální úrovně zabezpečení, potřebujete certifikát SSL. Jak ale SSL certifikát získáte? Jedním z nejjednodušších a nákladově nejefektivnějších způsobů je vytvoření certifikátů s vlastním podpisem na vašich systémech.
Certifikáty s vlastním podpisem jsou certifikáty s veřejným klíčem, které si uživatelé mohou vygenerovat sami, místo aby je vydávala certifikační autorita. A v tomto tutoriálu se dozvíte, jak vygenerovat certifikát s vlastním podpisem na počítačích s Windows i Linuxem (zdarma).
Čtěte dál a začněte zabezpečit své aplikace a infrastrukturu!
Předpoklady
Tento tutoriál bude praktickou ukázkou. Pokud je chcete sledovat, ujistěte se, že máte následující:
- Zařízení se systémem Windows 10 nebo novějším.
- Počítač Ubuntu alespoň 14.04.4 LTS – Tento výukový program používá Ubuntu 20.04.4 LTS.
- Apache nainstalovaný na počítačích se systémem Windows a Linux.
- OpenSSL nainstalované na vašem počítači se systémem Windows – Tento výukový program používá OpenSSL 3.0.3 Light (32bitový).
Generování certifikátů s vlastním podpisem na Ubuntu
Nejjednodušší způsob, jak otestovat certifikát s vlastním podpisem, je na webovém serveru a jedním z nejpoužívanějších webových serverů je Apache. Začněme tedy tento tutoriál konfigurací serveru Apache již nainstalovaného na počítači Ubuntu.
1. SSH do vašeho Ubuntu VM pomocí vašeho oblíbeného klienta SSH.
2. Spusťte níže uvedený příkaz apt update, abyste zajistili, že Ubuntu má všechny nejnovější zdroje balíčků.
sudo apt update

3. Dále otevřete svůj oblíbený webový prohlížeč, přejděte na

4. Nyní spusťte každý níže uvedený příkaz a vytvořte adresář s názvem ~/certificates a přejděte do adresáře, kde budete certifikáty ukládat.
mkdir ~/certificates
cd ~/certificates
5. Dále spusťte následující příkaz openssl pro vygenerování žádosti o podpis certifikátu (CSR) a soukromého klíče.
openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
Po provedení příkazu zadejte podrobnosti, jak je uvedeno níže.

Zabezpečení serveru Apache pomocí certifikátu SSL v Ubuntu
Po vygenerování certifikátů budete muset nakonfigurovat server Apache, aby certifikáty používal. Nejprve však potřebujete vyhrazený adresář pro uložení vašeho certifikátu. Modul SSL povolíte později a otestujete, zda certifikáty fungují při zabezpečení vašeho serveru Apache.
1. Spuštěním následujících příkazů vytvořte adresář (/etc/apache2/ssl) a přesuňte certifikáty z adresáře ~/certificates/ do adresáře /etc/apache2/ssl.
mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.
2. Otevřete výchozí konfigurační soubor serveru SSL Apache (/etc/apache2/sites-available/default-ssl.conf) a přidejte níže uvedené řádky. Nezapomeňte nahradit
V níže uvedeném kódu zadáte umístění (klíč a soubor certifikátu), kam jste dříve zkopírovali své certifikáty.
ServerName
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On

3. Nyní spusťte každý níže uvedený příkaz pro aktivaci modulu SSL, povolení webu, který jste upravili (krok 4), a restartování služby Apache.
# Enable the SSL module so that you can work with SSL connections.
sudo a2enmod ssl proxy proxy_http proxy_balancer
# Enable the site you modified (step four)
sudo a2ensite default-ssl.conf
# Restart the Apache service
sudo service apache2 restart

4. Nakonec znovu přejděte na váš server Apache. Tentokrát však pomocí HTTPS, jak je uvedeno níže.
Jak můžete vidět, Apache se úspěšně otevírá pomocí připojení SSL na portu HTTPS. Nedělejte si starosti, pokud uvidíte varovný symbol zobrazující zprávu Not secure. Toto varování se vám zobrazí, protože používáte certifikát podepsaný sám sebou (vytvořený vámi), nikoli certifikační autoritou.
Kliknutím na Pokračovat na

Vidíte stejnou stránku jako níže? Gratulujeme! Úspěšně jste zabezpečili server Apache pomocí certifikátu s vlastním podpisem.

Vygenerování certifikátu SSL v systému Windows
Dříve jste zabezpečili server Apache hostovaný na počítači Ubuntu pomocí certifikátu s vlastním podpisem. Stejným způsobem můžete také zabezpečit server Apache na operačním systému Windows.
Zabezpečení serveru Apache v systému Windows:
1. Otevřete konfigurační soubor Apache (httpd.conf) na C:\Apache24\conf umístění a odkomentujte níže uvedený řádek.
Následující řádek povoluje modul SSL na počítačích se systémem Windows a umožňuje Apache pracovat s portem HTTPS.
LoadModule rewrite_module modules/mod_rewrite.so
2. Dále otevřete PowerShell jako správce a spusťte následující příkaz openssl pro vygenerování požadavku na podpis certifikátu (CSR) a soukromého klíče.
openssl req -x509 -newkey rsa:4096 -keyout Apache.key -out Apache.crt -days 365 -nodes
Po spuštění příkazu zadejte podrobnosti o certifikátu, jak je uvedeno níže.

3. Přejděte do adresáře instalačního koše OpenSSL (C:\ProgramFiles\OpenSSL-Win64\bin ) a níže ověřte certifikát a klíč Apache.

Konfigurace serveru Apache pro použití certifikátů SSL
Právě jste vygenerovali svůj certifikát a klíč pro zabezpečení připojení k serveru Apache. Ale stejně jako u Ubuntu potřebujete vyhrazenou složku pro uložení vašeho certifikátu a klíče a povolení modulu SSL.
1. Zkopírujte soubor certifikátu SSL (apache.crt ) a soubor soukromého klíče (apache.key ) do C:\Apache24\conf složka.
2. Upravte konfigurační soubor Apache SSL (C:/Apache24/conf/httpd.conf ) a přidejte následující řádky nebo zrušte komentář, pokud již existuje.
Níže uvedené řádky aktivují modul SSL a umožňují Apache pracovat na portu HTTPS.
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
3. Nyní upravte soubor Apache SSL (C:/Apache24/conf/extra/httpd-ssl.conf ) a přidejte následující řádky. Tento soubor bude volán httpd.conf soubor interně, jak je definováno v httpd.conf soubor (včetně conf/extra/httpd-ssl.conf).
SSLCertificateFile "C:\Apache24\conf\apache.crt"
SSLCertificateKeyFile "C:\Apache24\conf\apache.key"
4. Spuštěním následujících příkazů v prostředí PowerShell přejděte do složky instalačního koše Apache a spusťte službu Apache.
# Change the working directory
cd C:\ProgramFiles\OpenSSL-Win64\bin
# Start the Apache service
./httpd.exe

5. Nakonec přejděte na https://localhost pro ověření serveru Apache.
Na stránce byste měli vidět stejnou zprávu (Funguje to!), která potvrzuje, že server Apache běží s certifikátem podepsaným svým držitelem na počítači se systémem Windows.

Závěr
V tomto tutoriálu jste se naučili, jak nakonfigurovat webový server Apache v operačních systémech Ubuntu i Windows a jak ověřit, že máte bezpečný přístup k instanci Apache.
Jak nyní plánujete zlepšit svou hru s Apache? Možná automatizovat nasazení webu? Nebo vytvořit kanál Jenkins CI CD pro zlepšení procesu vývoje softwaru?