Jistě každý ví, že nešifrovaný přenos po internetu je nebezpečný. Lze tak relativně jednoduše odchytit přihlašovací údaje k emailu, či jiným službám, které lze potom zneužít. Aby se tomuto dalo zabánit, používá se na přenos citlivých údajů šifrované spojení. Webserver Apache k tomuto účelu obsahuje modul mod_ssl, díky kterému lze spojení šifrovat. Předpokládám, že balíček s OpenSSL má snad nainstalovaný každý, pokud ne, je nutné si ho nainstalovat.
Aby jsme mohli této vymoženosti využít, je nutné získat certifikát. Jsou dvě cesty, jak se k němu dopracovat. Můžeme si lokálně vytvořit vlastní samopodepsaný (Self-Signed) certifikát, nebo můžeme využít služeb některé certifikační autority (například http://www.verisign.com,http://www.thawte.com, http://www.ica.cz), která nám tento certifikát podepíše. Nevýhoda certifikačnich autorit (CA) je ten, že vystavení certifikátu něco stojí. Ceny se pohybují od 1000kč výše.
Existuje však jedna CA, která vystavuje certifikáty zcela zdarma a sídlí na adrese http://www.cacert.org. Nevýhodou této CA je, že některé operační systémy a webové prohlížeče ji standardně za CA nepovažují a je nutné si odsud nainstalovat kořenové certifikáty. Dále bude popsán jednoduchý postup, jak si pomocí Cacert.org vytvořit certifikát pro server Apache. Lze si samozřejmě nechat vystavit certifikát i pro jiné služby, (ftp, OpenVPN, atd).
Jako první si vytvoříme privátní klíč (PK) a uložíme do souboru server.key a ukážeme si několik možností. Nejjednodušší a nejpoužívanější cesta k získání PK je:
openssl genrsa -des3 -out server.key 1024
Po zadání passphrase máme vygenerovaný náš, resp. serverový privátní klíč RSA o délce 1024 bitů. Co je to ale ta passphrase? Passphrase je heslo , kterým je chráněn náš klíč, a později i samotný certifikát, proti neoprávněnému zneužití. Když budeme spouštět Apache s certifikátem chráněným pomocí passphrase, budeme vyzváni o zadání hesla, jinak se Apache nespustí. Pokud Apache spouštíme vždy ručně, asi to nebude velký problém. Pokud ale Apache běží na serveru a je nutné zajistit spuštění zcela automaticky, třeba po výpadku napájení, může to být docela problém, i když řešení také existuje. Proto si vygenerujeme PK bez nutnosti zadávat heslo. Pokud jste paranoidní, tento příklad přeskočte.
openssl genrsa -out server.key 1024
Opět získáme PK, ovšem bez nutnosti zadávat heslo při spuštení Apache. Aby byl PK co nejvíce 'náhodný', lze si pomoci použitím parametru -rand. Díky tomuto parametru openssl načte soubory (oddělené dvojtečkou), pomocí kterých vytvoří náhodnější data. Příklad použití je zde (opět bez nutnosti zadání passphrase).
openssl genrsa -rand /usr/bin/awk:/home/nejaky_obraz_cd.iso -out server.key 1024
Je VELMI vhodné, aby tento PK mohl číst POUZE root.
Když máme vytvořen PK. můžeme vytvořit žádost o vystavení samotného certifikátu. Žádost vytvoříme následujícím přikazem.
openssl req -new -key server.key -out server.csr
Budeme dotázáni na vložení doplňujících informací. Country Name - CZ, State or Province Name - Czech Republic, Locality Name - Usti nad Labem (případně jiné město, kde se bude nacházet váš server), Organization name - Vseborice.net s.r.o. (případně název vaši společnosti), Organization Name Unit ponecháme prázdné, Common Name - www.mujserver.cz (adresa serveru, kde bude použitý certifikát), Email Address je asi jasné, ale není nutné vyplňovat, stejně tak jako všechny následující položky. Pokud máte v plánu vytvářet více certifikátů, je vhodné si poeditovat soubor /etc/ssl/openssl.conf, kam lze zadat výše uvedené údaje jako defaultní. Pokud je PK chráněný pomocí passphrase, objeví se ješte dotaz na ni.
Pokud ještě nemáte u Cacert.org zaregistrovaný účet, tak si ho vytvořte. Když máte účet vytvoŘený, nalevo v menu musíte nejprve přidat domény, pro které chcete vytvářet certifikáty. Pokud budete chtít vytvořit certifikát pro adresu www.mojedomena.cz, jako doménu zadáte mojedomena.cz. Můžete vložit i více domén jejich počet není nijak omezen.
Aby Cacert.org mohl vystavit certifikát, musíte si vypsat obsah souboru s žádostí,
cat server.csr
zkopírovat do schránky. V pravo v menu kliknete na Serverové certifikáty,Nový, do textového okna vložíte obsah schranky s žádostí o certifikát a 2x potvrdíte tlačítkem odeslat. Po chvilce se zobrazí samotný certifikát. Ten si zkopírujete a uložíte do souboru server.crt. Certifikát přijde i emailem na adresu uvedenou při registraci a zároveň je dostupný v menu Serverové certifikáty,Nový. Zde je možné odvolat platnost certifikátu jeho smazáním, zároveň je vidět platnost jednotlivých certifikátú.