SSL certifikáty zabezpečují dvě hlavní funkce: šifrování datových přenosů mezi prohlížečem návštěvníka a serverem, a potvrzení identity provozovatele serveru.
Certifikát je možné v prostředí sdíleného hostingu nainstalovat přes webové rozhraní Webadminu (v případě zakoupení SSL certifikátu u nás je instalace dokonce plně automatická), toto však neplatí u virtuálního serveru – SSL certifikáty je nutné instalovat manuálně.
Kopírování potřebných souborů
Jako úplné minimum jsou pro správné fungování SSL certifikátu nutné dva soubory: soubor privátního klíče, standardně s příponou .key, a samotný certifikát (*.crt).
Ve většině případů též certifikační autorita (CA) poskytne tzv. intermediate certifikát, někdy nazývaný též certificate chain nebo bundle. Tento soubor je ve skutečnosti sada certifikátů, vypovídající o vztahu certifikační autority, která vám certifikát vydala, s jejími nadřazenými certifikačními autoritami.
Soubory na VPS můžeme nakopírovat například prostřednictvím programů WinSCP nebo FileZilla. Použijeme SFTP režim přenosu a pro přihlášení použijeme rootovské přihlašovací údaje, které nám byly zaslané při vytvoření VPS.
Nakopírujeme *.crt a *.key soubory do adresáře /etc/ssl/<domena>/:
Úprava konfigurace Apache2
Pro správné fungování SSL certifikátu potřebujeme upravit nastavení Apache webserveru – přesněji VHostu domény, pro kterou byl SSL certifikát vydaný. Tento najdeme ve složce /etc/apache2/sites-enabled/.
Otevřeme ho v textovém editoru. Zajímají nás následovné sekce:
<VirtualHost *:80> DocumentRoot /data/web/mojedomena.cz/web ServerName mojedomena.cz ServerAlias www.mojedomena.cz ErrorLog /data/web/mojedomena.cz/logs/error_log CustomLog /data/web/mojedomena.cz/logs/access_log common </VirtualHost> <VirtualHost *:80> VirtualDocumentRoot /data/web/mojedomena.cz/sub/%-3 ServerName mojedomena.cz ServerAlias *.mojedomena.cz ErrorLog /data/web/mojedomena.cz/logs/error_log CustomLog /data/web/mojedomena.cz/logs/access_log common </VirtualHost>
Tyto sekce v konfiguračním souboru zduplikujeme a v jejich nové kopii uděláme drobné změny:
<VirtualHost *:443> DocumentRoot /data/web/mojedomena.cz/web ServerName mojedomena.cz ServerAlias www.mojedomena.cz ErrorLog /data/web/mojedomena.cz/logs/error_log CustomLog /data/web/mojedomena.cz/logs/access_log common SSLEngine on SSLCertificateFile /etc/ssl/mojedomena.cz/server.crt SSLCertificateKeyFile /etc/ssl/mojedomena.cz/server.key </VirtualHost> <VirtualHost *:443> VirtualDocumentRoot /data/web/mojedomena.cz/sub/%-3 ServerName mojedomena.cz ServerAlias *.mojedomena.cz ErrorLog /data/web/mojedomena.cz/logs/error_log CustomLog /data/web/mojedomena.cz/logs/access_log common SSLEngine on SSLCertificateFile /etc/ssl/mojedomena.cz/server.crt SSLCertificateKeyFile /etc/ssl/mojedomena.cz/server.key </VirtualHost>
V případě, že máme i intermediate certifikát, použijeme ho přidáním následovného řádku do každé z nových sekcí:
SSLCertificateChainFile /etc/ssl/mojedomena.cz/server.chain.crt
Novou konfiguraci otestujeme pomocí příkazu apache2ctl -t a pokud si na nic nestěžuje, Apache restartujeme pomocí apache2ctl restart