Jak nasadit vlastní SSL certifikát
SSL certifikát vám umožní šifrovanou komunikaci mezi webem a prohlížečem. Jde o tzv. HTTPS. Ve většině případů vystačí Let’s Encrypt certifikát je zdarma a vystačí vám v 99 % případů. Kdy ale už nestačí?
Kdy se více hodí placené certifikáty?
U specifických požadavků na typ certifikátu
- EV certifikáty (Extended Validation): Se hodí, potřebujete-li nejvyšší úroveň důvěryhodnosti. Využití je typické například u bank, velkých e-shopů nebo finančních institucí. EV certifikáty zobrazují v prohlížeči název organizace a signalizují tak zákazníkům vysokou úroveň zabezpečení.
- OV certifikáty (Organization Validation): Vyžadují ověření organizace, což přímo Let’s Encrypt nenabízí. OV certifikáty jsou vhodné, pokud chcete prokázat, že web patří konkrétní vaší firmě.
Pokud vlastníte více domén najednou nebo pro Wildcard
Let’s Encrypt podporuje Wildcard certifikáty. Jejich nesporná výhoda je, že zvládají automatickou aktivaci SSL u všech vašich subdomén naráz. Avšak nemusí být ideální pro složité struktury, kde potřebujete pokrýt mnoho různých domén nebo více úrovní subdomén. Některé komerční certifikáty umožňují flexibilnější pokrytí.
Placené certifikáty mají delší dobu platnosti
Let’s Encrypt certifikáty mají platnost pouze 90 dní, což vyžaduje častou obnovu (i když i to lze automatizovat). Pokud nemůžete zajistit pravidelnou obnovu, může být vhodnější komerční certifikát s platností 1-2 roky.
Placené certifikáty nabízí pokročilé funkce i zákaznickou podporu
Let’s Encrypt neposkytuje zákaznickou podporu. Pokud chcete technickou pomoc nebo další funkce (např. záruku při kompromitaci certifikátu), je lepší použít komerční certifikát.
Právní a regulační požadavky na neplacená řešení
Některé organizace, obzvláště ve zdravotnictví, finančnictví nebo vládním sektoru, vyžadují certifikáty od konkrétních poskytovatelů, kteří splňují přísné regulační normy. Let’s Encrypt nemusí být v takovém případě vždy považován za dostatečný.
Není lepší mít vlastní certifikát?
Existuje ještě možnost zakoupit si vlastní SSL certifikát. Samozřejmě v šifrování pak není ŽÁDNÝ rozdíl a web, který je zabezpečený certifikátem od Let’s Encrypt je stejně bezpečný, jako s placeným certifikátem.
Avšak rozdílů tam je víc. Například fakt, že vlastní certifikát poskytuje další vrstvu ověřování – jako třeba telefonní číslo společnosti, dopis přímo na adresu atd., dále poskytuje ještě všechny rozdíly zmíněné výše. Tedy po úspěšném kolečku ověřování a zaplacení 10 tisíc ročně můžete mít v adresním řádku název společnosti jako na obrázku níže.
Pojďme se tedy naučit, jak si vlastní certifikát nainstalovat.
Aktivace z VPS Centra
Pokud půjdete cestou vlastního řešení, můžete si svůj certifikát nahrát v nastavení vaší domény.
Nahrání certifikátu na server
Nahrát certifikát na server můžete třeba pomocí SSH nebo právě pomocí VPS Centra, jak je popsáno výše.
Nahrání certifikátu přes SSH
Jak pro nahrání SSL certifikátu na server, tak i přes SSH, můžete použít metody – rsync a scp. Níže popisujeme postup pro oba případy:
Použití rsync
Rsync je ideální, pokud chcete synchronizovat soubory nebo adresáře mezi místním a vzdáleným serverem.
Příkaz:
rsync -avz /místní/cesta/k-certifikátu.pem uživatel@server:/cesta/na/serveru/
Parametry:
- -a: Archivní mód – zachovává oprávnění, časy úprav a symbolické odkazy.
- -v: Zobrazuje podrobnosti (volitelně).
- -z: Komprese dat při přenosu.
- /místní/cesta/k-certifikátu.pem: Cesta k certifikátu na vašem počítači.
- uživatel@server:/cesta/na/serveru/: SSH přihlašovací údaje a cílové umístění na serveru.
Příklad:
rsync -avz /home/user/ssl/cert.pem root@192.168.1.100:/etc/ssl/certs/
Použití scp
Scp je jednodušší nástroj pro kopírování souborů mezi místním počítačem a serverem přes SSH.
Příkaz:
scp /místní/cesta/k-certifikátu.pem uživatel@server:/cesta/na/serveru/
Parametry:
- /místní/cesta/k-certifikátu.pem: Cesta k certifikátu na vašem počítači.
- uživatel@server:/cesta/na/serveru/: SSH přihlašovací údaje a cílové umístění na serveru.
Příklad:
scp /home/user/ssl/cert.pem root@192.168.1.100:/etc/ssl/certs/
Použití Midnight Commander (MC)
- Přihlaste se na SSH a spusťte příkaz mc. Ten spustí Midnight Commander (MC).
- Nahrajte si certifikát na server, umístění je čistě na vás. Důležité je hlavně poté soubory dostat do příslušné složky. V MC můžete pomocí F5 kopírovat soubory z levého okna do pravého.
Certifikát se vloží do adresáře: /etc/ssl/certs
Klíč zase do adresáře: /etc/ssl/private
.PEM soubory do složky: /etc/ssl/certs
Co je dobré před nahráním ověřit?
- Přístupová práva: Ujistěte se, že máte dostatečná práva na serveru k zápisu do cílové složky (např. etc/ssl/certs).
- Privátní klíč: Pokud nahráváte i privátní klíč, zajistěte, aby byl chráněn správnými právy:
chmod 600 /etc/ssl/private/key.pem
Po nahrání ověřte, že certifikát i klíč jsou nainstalované správně (např. restartujte webový server a zkontrolujte konfiguraci).
Soukromý klíč by měl být uložen v zabezpečeném adresáři, například v /etc/ssl/private, kde přístup mají pouze root nebo konkrétní uživatelé.
Závěrečná kontrola konfigurace Apache
Přihlaste se do VPS Centra a otevřete konfiguraci Apache.
A musíme aktualizovat názvy souborů a ověřit si cesty, že jsme vše nakopírovali správně. S jedinou chybou, můžete shodit celý web. Pro jistotu doporučujeme původní soubory a původní konfiguraci uložit k sobě jako kopii a v případě problémů vše vrátit do původního stavu.
Přidejte SSL směrnice
Upravený konfigurační soubor by měl obsahovat následující blok pro HTTPS:
<VirtualHost *:443>
ServerName vaše-domena.cz
ServerAlias www.vase-domena.cz
DocumentRoot /var/www/vase-web
SSLEngine on
SSLCertificateFile /cesta/k/vasemu_certifikatu.pem
SSLCertificateKeyFile /cesta/k/vasemu_soukromemu_klici.key
SSLCertificateChainFile /cesta/k/vasemu_intermediate_certifikatu.pem
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Popis parametrů:
- SSLEngine on: Povolení SSL.
- SSLCertificateFile: Cesta k vašemu hlavnímu certifikátu.
- SSLCertificateKeyFile: Cesta k vašemu privátnímu klíči.
- SSLCertificateChainFile: (Nepovinné) Pokud váš certifikát vyžaduje řetězové certifikáty, přidejte tuto cestu.
Zkontrolujte konfigurace
Zkontrolovat konfiguraci můžete přes SSH pomocí příkazu:
sudo apachectl configtest
Pokud je vše v pořádku, uvidíte zprávu Syntax OK. V opačném případě opravte chyby uvedené ve výstupu.
Restartujte Apache
Nakonec zbývá restartovat Apache. to můžete udělat přes VPS Centrum a jednorázové akce.
Nebo případně i přes SSH a příkaz:
sudo systemctl restart apache2
Můžete si i zkontrolovat, že je certifikát aktivní.
Nebo pro hlubší diagnostiku jsou k dispozici také logy:
sudo journalctl -xe
sudo tail -f /var/log/apache2/error.log