Nastavení zabezpečeného HTTPS spojení pro web pod Apache2

Nastavení zabezpečeného HTTPS spojení pro web pod Apache2

V dnešním příspěvku se dozvíte, jak nastavit virtuálního hostitele pod Apachem tak, aby komunikoval zabezpečeně (HTTPS).

Předpokládám, že máte funkční konfiguraci virtuálních hostitelů. V Ubuntu se konfigurační soubory pro Apache nachází v adresáři /etc/apache2/sites-available/ , tam také odkazují weby, které máte povolené v /etc/apache2/sites-enabled .

Musíte také mít připravený certifikát a jeho privátní klíč. Jak vygenerovat důvěryhodný certifikát se můžete dočíst v článku Získání důvěryhodného SSL certifikátu .

Úprava konfiguračního souboru Apache + povolení mod_ssl

Otevřete konfigurační soubor virtuálního hostitele, pro kterého chcete přidat podporu HTTPS. S oblibou používám editor vim, vy můžete použít samozřejmě váš oblíbený editor:

vi /etc/apache2/sites-available/mujhost.conf

Nezabezpečené HTTP chceme přesměrovat na HTTPS, aby návštěvníci nemuseli před adresu zadávat https, ale komunikovali vždy zabezpečeně. Výsledný konfigurační soubor vypadá takto – všimněte si rozdílných portů:

<VirtualHost *:80>
 ServerName web.cesal.cz
 ServerAlias mujweb.cesal.cz
 Redirect permanent / https://web.cesal.cz/
</VirtualHost>
<VirtualHost *:443>
 SSLEngine on
 SSLCertificateFile "/etc/postfix/ssl/mycert.crt"
 SSLCertificateKeyFile "/etc/postfix/ssl/mycert.key"
 SSLProtocol all -SSLv2
 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
 SSLCertificateChainFile /etc/postfix/ssl/sub.class1.server.ca.pem
 ServerName web.cesal.cz
 DocumentRoot /weby/mujweb
 <Directory /weby/mujweb>
 Options -Indexes +FollowSymLinks -SymLinksIfOwnerMatch +MultiViews
 AllowOverride None
 Order allow,deny
 allow from all
 </Directory>
</VirtualHost>

Nejdůležitější jsou tři zvýrazněné řádky začínající SSL. Certifikát (mycert.crt) i jeho privátní klíč (mycert.key) jsou umístěny v /etc/postfix/ssl/ (protože je využívám pro zabezpečení mailového serveru, které používá stejný DNS název web.cesal.cz). Musíte také stáhnout soubor sub.class1.server.ca.pem z certifikační autority a umístit ho do zadané složky.

Aby Apache mohl používat SSL, musíte povolit příslušný modul a restartovat Apache2:

sudo a2enmod ssl
service apache2 restart

Hotovo. Od teď bude každý návštěvník, který přijde na web.cesal.cz přesměrován na https://web.cesal.cz/ a bude komunikovat zabezpečeně.