V dnešní příručce se budeme zabývat tím, jak vygenerovat certifikát SSL s vlastním podpisem v systému Linux a jak je implementovat v Apache. SSL se stává čím dál důležitější, protože se internet stává populárnějším. Protože se bezplatné certifikáty Let’s Encrypt stávají komoditou, kterou může používat kdokoli, není důvod, aby kdokoli nepoužíval SSL – nemluvě o výhodách hodnocení vyhledávání a skutečnosti, že prohlížeče a vyhledávací stroje budou vašemu webu důvěřovat.
Můžete však také vygenerovat vlastní certifikát SSL s vlastním podpisem pro soukromé použití na vašem serveru. Jedním z velkých důvodů je šifrování. I když váš osobní certifikát nebude pro prohlížeče nic znamenat a návštěvníci budou i nadále dostávat varovnou zprávu, pokud navštíví váš web přímo, můžete si být alespoň jisti, že jste chráněni před útoky typu „člověk uprostřed“. Certifikát s vlastním podpisem je dobrým prvním krokem, když právě testujete věci na svém serveru a možná ještě nemáte ani název domény.
Začněme s naším postupným postupem na jak vytvořit certifikát SSL podepsaný svým držitelem v systému Linux.
Obsah
Krok 1: Vytvoření klíčového páru RSA
Prvním krokem při generování vlastního certifikátu SSL s vlastním podpisem je použití balíčku „openssl“ v systému Linux / CentOS k vytvoření páru klíčů RSA. Chcete-li to provést, ujistěte se, že máte nainstalovaný balíček. Pokud ne, nainstalujte jej pomocí tohoto příkazu:
sudo yum install openssl
Je pravděpodobné, že jej již ve svém systému máte k dispozici – měl by být nyní nainstalován bez ohledu na to. Jakmile je balíček potvrzen jako nainstalovaný ve vašem systému, vygenerujte pár klíčů pomocí následujícího příkazu:
openssl genrsa -des3 -passout pass:x -out keypair.key 2048
Tento příkaz používá 2048 bitové šifrování a vydá soubor s názvem keypair.key
, jak je uvedeno zde:
Jak vidíte, klíč byl vygenerován a umístěn do aktuálního adresáře.
Krok 2: Extrahujte soukromý klíč do Složka „httpd”
Složka /etc/httpd
je místo, kde operační systém uchovává všechny důležité položky související s SSL. Nejprve vytvořme novou složku, do níž budou uloženy všechny naše soubory související s naším soukromým klíčem:
sudo mkdir /etc/httpd/httpscertificate
Složku jsme nazvali httpscertificate
a budeme ji označovat tímto jménem pro všechny ostatní příklady příkazového řádku. Složku můžete pojmenovat, jak chcete.
Chcete-li extrahovat soukromý klíč ze souboru párů klíčů, který jsme právě vytvořili, zadejte fo llowing:
openssl rsa -passin pass:x -in keypair.key -out /etc/httpd/httpscertificate/012.345.678.90.key
Tučně nahraďte sekci IP adresou vašeho vlastního serveru. Nebo pokud máte přístup na svůj web s názvem domény, můžete jej také použít.
Tím se ve složce, která obsahuje, vytvoří soubor .key
. právě jsme vytvořili. Po dokončení tohoto procesu můžeme původní soubor klíčů smazat:
rm keypair.key
Krok 3: Vytvoření souboru žádosti o podepsání certifikátu (CSR)
Pomocí klíče můžeme vytvořit speciální .csr
soubor, který můžeme buď sami podepsat, nebo odeslat „Certifikační autoritě“. Je ve standardizovaném formátu a lze jej snadno vygenerovat pomocí našeho klíče z předchozího kroku. Chcete-li jej vytvořit, zadejte následující příkaz:
openssl req -new -key /etc/httpd/httpscertificate/012.345.678.90.key -out /etc/httpd/httpscertificate/012.345.678.90.csr
Znovu nahraďte položky tučně adresou IP nebo názvem domény, na které jste se usadili v kroku 2. Když spustíte tento příkaz, nástroj vás požádá o některé vaše osobní údaje, jako je vaše umístění a název organizace:
CA (zkratka pro Certifikační autoritu) může pomocí těchto údajů ověřit, že jste skutečně tím, kým o sobě říkáte. Zkuste vyplnit pole co nejvíce informacemi.
Jakmile zadáte tyto podrobnosti, nástroj dokončí práci a umístí .csr
soubor v adresáři, který jsme vytvořili právě pro tento účel.
Krok 4: Vytvoření souboru „.crt“ certifikátu
Pomocí CSR můžeme vytvořit finální soubor certifikátu jako následuje. Nyní použijeme naše .csr
a .key
soubory k vytvoření našeho .crt
souboru:
Tím se vytvoří .crt
soubor v umístění se všemi našimi dalšími soubory. Nyní víme, jak vygenerovat náš certifikát SSL podepsaný svým držitelem. Zde je snímek obrazovky poslední soubory v naší složce zabezpečení:
Nyní musíme Apache říct, kde jsou tyto soubory.
Krok 5: Konfigurace Apache pro použití souborů
Vše, co teď musíme udělat, je ukázat Apache, kde jsou naše generované certifikáty s vlastním podpisem. Nejprve musíme nainstalovat balíček mod_ssl
pomocí příkazu:
sudo yum install mod_ssl
Jakmile to uděláte, umístí se ssl.conf
soubor ve složce /etc/httpd/conf.d/
. Musíme tento výchozí soubor upravit. Použijte preferovaný textový editor:
sudo vi /etc/httpd/conf.d/ssl.conf
Nyní přejděte dolů, dokud nenajdete řádky začínající na:
SSLCertificateFileSSL CertificateKeyFile
Změňte výchozí cesty s cestami k souboru certifikátu a souboru klíčů, jak je uvedeno zde:
Uložte změny. Nyní restartujte Apache pomocí:
sudo apachectl restart
A máte hotovo! Když se Apache restartuje, bude nakonfigurován tak, aby umožňoval připojení SSL pomocí vygenerovaných certifikátů SSL podepsaných svým držitelem.
Když se příště připojíte ke své IP adrese přes HTTPS, budete upozorněni, že to není důvěryhodný certifikát:
To je v pořádku. Víme to, protože jsme to sami podepsali! Stačí pokračovat a dostanete se na skutečný web:
Zde vidíte, že používá certifikát, který jsme vytvořili. K návštěvě vašeho webu kdokoli jiný to příliš nepoužívá, protože nemůže ověřit vaši identitu. Ale víte, že je to bezpečné a navíc je to šifrované. Žádný muž uprostřed útoku!
Nyní víte, jak vygenerovat vlastní certifikáty SSL s vlastním podpisem a implementovat je na vašem webovém serveru Apache.
Pokud jste jedním z našich Managed Klienti hostující VPS, vše pro vás můžeme udělat bez dalších nákladů. Jednoduše kontaktujte naše správce systému a oni co nejdříve odpoví na váš požadavek.