GNU/Linux >> Znalost Linux >  >> Linux

Hlavní certifikáty s vlastním podpisem pro Windows a Linux

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 :80 , a uvidíte, že se domovská stránka Apache otevře pouze na portu HTTP (Nezabezpečeno).

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 skutečným názvem vašeho serveru.

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 (nebezpečné) pokračujte v přístupu k serveru Apache.

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?


Linux
  1. Zvládněte příkaz Linux ls

  2. 10 DŮVODŮ PRO ZMĚNU WINDOWS 10 NA LINUX

  3. Použití SNI k hostování více certifikátů SSL v Apache

  1. Jak nainstalovat Apache 2 s SSL na Linuxu (s mod_ssl, openssl)

  2. Dešifrování SSL pomocí Wireshark na Linuxu vs Windows

  3. exFAT vs NTFS na Linuxu

  1. Generujte SSL certifikáty pomocí LetsEncrypt na Debian Linuxu

  2. Linux vs Windows hosting

  3. Umístění certifikátu SSL v systému UNIX/Linux