WWW server se SSL
Zabezpečený přenos mezi klientem (WWW prohlížeč) a WWW serverem Apache se zajišťuje pomocí mezivrstvy SSL. Šifrováním zajistíte, že komunikaci mezi klientem a serverem nelze jednoduše odposlechout. Protože však člověk svými smysly nemůže samotnou komunikaci ověřit a hlavně nelze zjistit, odkud doopravdy síťová komunikace pochází, je potřeba na začátku protistranu nějakým způsobem ověřit.
Ověřování totožnosti protistrany je nejjednodušší pomocí tzv. certifikátu, což je digitálně podepsaný veřejný klíč. Digitální podpis vytváří Certifikační autorita, která zakládá svoji důvěryhodnost na tom, že před vytvořením digitálního podpisu ověří totožnost majitele podepisovaného veřejného klíče a údaje o jeho totožnosti do výsledného certifikátu zahrne.
Při zabezpečeném připojení k serveru nejprve server nabídne svůj certifikát a je na uživateli, aby ověřil jeho důvěryhodnost. Uživatel například může:
- zatelefonovat majiteli a ověřit otisk SHA1 nebo MD5
- spolehnout se na důvěryhodnost Certifikační autority, která je v něm podepsána
Instalace
Podporu pro zabezpečený přenos poskytuje modul mod_ssl, který se nachází ve stejnojmenném balíčku:
yum install mod_ssl
Součástí balíčku jsou univerzální certifikáty, s jejihž pomocí můžete okamžitě HTTPS používat. Klent však nebude moci ověřit, zda doopravdy komunikujete se správným serverem. K tomu si musíte vygenerovat certifikáty vlastní.
Vytvoření certifikátu s vlastním podpisem
Veřejný klíč serveru musí být podepsaný. Digitální podpis můžete získat od nějaké certifikační autority nebo si můžete vytvořit podpis sami. Uživatel pak však bude muset při ověření certifikátu použít kontrolu SHA1 výtahu (miniatury, fingerprintu).
Postup vytvoření vlastního podepsaného certifikátu je uveden na následujících řádcích (tučně napsaný text předtavuje to, co uživatel píše):
cd /etc/httpd/conf rm -f ssl.key/server.key ssl.crt/server.crt openssl genrsa 1024 > ssl.key/server.key chmod go-rwx ssl.key/server.key openssl req -new -key ssl.key/server.key -x509 -days 365 -out ssl.crt/server.crt -set_serial 01 Country Name (2 letter code) [GB]: CZ State or Province Name (full name) [Berkshire]: Czech Republic Locality Name (eg, city) [Newbury]: Liberec Organization Name (eg, company) [My Company Ltd]: SPSSE a VOS Liberec Organizational Unit Name (eg, section) []: Masarykova 3, 460 01 Liberec I. Common Name (your name or server's hostname) []: www.pslib.cz Email Address []: webmaster@pslib.cz
Po vytvoření certifikátu je potřeba restartovat WWW server:
/etc/init.d/httpd restart
Od této chvíle by mělo jít používat HTTPS spojení s vaším WWW serverem.