.

Jak zlepšit zabezpečení SSL certifikátem

Nápověda > Cloud Server Linux > Jak zlepšit zabezpečení SSL certifikátem

Když na váš server nastavíte SSL certifikát, tak začnete chránit návštěvníky proti odposlechu. SSL certifikát je však pouze nástroj zabezpečení a je na vás, jak dobře ho budete používat.

Pro vysokou míru bezpečnosti a stav, kdy bude certifikát využit účelně a web bude skutečně bezpečný, je třeba provést několik nastavení. Výchozí nastavení serveru není dostatečně bezpečné a je nutné ho upravit.

SSLmarket

Jako referenci pro správnost nastavení použijeme největší autoritu v této oblasti, kterou je Qualys a test SSL Labs. Je vytvořen odborníky a v současnosti nejuznávanějším nástrojem pro kontrolu nastavení SSL certifikátu na serveru.

Změna výchozího nastavení a náprava nedostatků

    Tato výchozí konfigurace, kterou používá Debian, je pouze na známku C:

    • zapnuto SSLv3 (není bezpečné a má být vypnuto)
    • zapnutá RC4 šifra (šifra je prokazatelně slabá a zneužitelná)
    • nepodporuje Forward Secrecy (znemožní jakékoliv pozdější dešifrování zachycené komunikace)

    Pojďme tedy tyto nedostatky napravit.

    Vypnutí SSLv3 se provede v nastavení ssl.conf pro celý server:
    Editujte /etc/apache2/mods-available/ssl.conf a přidejte položku SSLProtocol all -SSLv2 -SSLv3.

    Vypnutí RC4 šifry provedete připsáním vykřičníku do seznamu šifer tamtéž:
    SSLCipherSuite ... !RC4

    Forward Secrecy zabraňuje kompromitaci komunikace, i kdyby útočník získal privátní klíč později. Díky Diffie-Hellmanově výměně klíčů je komunikace nerozluštitelná i v budoucnu. Předpokladem pro funkční Forward Secrecy jsou dva Diffie-Hellman algoritmy pro výměnu klíčů DHE a ECDHE .

    Forward Secrecy zapnete tak, že zapnete řazení šifer a sady šifer s DH dáte dopředu (upřednostníte jejich použití zařazením na začátek).

    Editujte opět /etc/apache2/mods-available/ssl.conf :

    SSLHonorCipherOrder on

    SSLCipherSuite "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK"

    Tím jsou hlavní problémy napraveny . Můžete však v nastavení pokračovat dále.

    Pokročilé bezpečnostní nastavení

    Pro silné zabezpečení potřebujete vygenerovat tzv. Parametry pro DH výměnu klíčů. Silné DH parametry jsou mimo jiné řešení zranitelnosti zvané Logjam.

    Generování DH parametrů proveďte v Openssl:
    openssl dhparam -rand – 4096

    Výsledek bude chvíli trvat (zvýšená zátěž serveru) a bude vypadat takto (obsah souboru dhparam):

    -----BEGIN DH PARAMETERS-----
    MMIICCAKCAgEA9yJdHbC89LRTPVSAT1Lmik4SNed0z2uUiW86rFQ5dNl7J5O5t8kY
    MOMpTwCSyHAUyGJEhpJ29HCVX1LRd1Ue5L7jFuGUinrumYPagDBMsUCb/XPIV2RT/
    M9iRzc29Vo/8+UGpVkuD2cptp5qGLSDJr2L0kyNaGvFVdA5kLZ2b2fmUt2DtNAnWl
    MWx6HaMU8rhgnu5g8NbORn0KgSaAretHOJGfIfrJ4rDQrMGoVfHl6caRfB28Wrjq7
    MXzcZhY2X1AuyONmrDTdtgpfPyJ5/TuaLGt8t2oCmL166DvVhU2xpFh7aGdNq+7YV
    MVPkuT4XqoNOaffKL6MT9h8z28yKpwzA8gwRaQAuajdBdoyFvZ9Yo7HbH1FdjBfpx
    MEraAkJvVZ4LOOA2NlfcBcapz14rmJ9J+wTjjlbHJv4jibsDu96W5jiKhdFogEoid
    MBlI1YCzZah7+Yet8eHNuxgCH4hziU0iMLeN+zuMnn8QpIYBd6ncuogAQjByE+7Ms
    M+gTKSum6F6svkeL3h0G3M9r3wZRRmAkVopl0j+qRPfqjkVyd60oIaGdhD/xN3xm6
    MU4DGQVnA9/lYPbalbV4UuXbZp6GEIWOkLZKSMlJijgFrXC6P8mV0mNslZG87r21H
    MwmqC3o0ubxKjSYjQGrO4e7RZo3x61qDI16WefV3Ouq6Z07F2GYKLhyMCAQI=
    -----END DH PARAMETERS-----

    Tyto DH parametry uložte na konec souboru s certifikátem, který je ve složce /etc/ssl/domena.cz/certifikat.pem. Provedete to například příkazem cat /cesta/dhparam >> /etc/ssl/domena.cz/certifikat.pem.

    Apache ve verzi 2.4 a vyšší je začne automaticky používat, což se projeví ve vyšší bezpečnosti výměny klíčů a zamezí zneužití zranitelnosti Logjam.

    Získání bonusového plus a známky A+

    Bezpečnost použití certifikátu a hodnocení v testu SSLlabs můžete ještě zvýšit použitím HTTP Strict Transport Security (HSTS).

    HSTS vylepšuje bezpečnost návštěvníkova spojení se serverem, protože nedovolí komunikovat jiným protokolem, než je HTTPS. Nedovolí útočníkovi snížit úroveň šifrování (downgrade útok), ani použít nešifrované HTTP. Více o HSTS najdete v článku české Wikipedie HTTP Strict Transport Security.

    A+

    HSTS jednoduše řečeno znamená. že se na webu se používá pouze protokol HTTPS a nikoliv už nezabezpečené HTTP.

    Upravte konfigurační soubor Apache (/etc/apache2/sites-enabled/website.conf) a přidejte následující řádek k VirtualHostu:

    <VirtualHost _default_:443>
    Header always set Strict-Transport-Security "max-age=31536000"; includeSubDomain
    [...]</VirtualHost>

    Předpokladem fungování je zapnutí headers (sudo a2enmod headers). Po nastavení Apache restartujte.

    Po nastavení HSTS je nutné web přesměrovat na HTTPS. Toho můžete dosáhnout pomocí přesměrování:

    <VirtualHost *:80>
    [...]
    ServerName example.com
    Redirect permanent / https://example.com/
    </VirtualHost>

    nebo pomocí modrewrite

    <VirtualHost *:80>
    [...]
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    </IfModule>
    </VirtualHost>

    Nakonec proveďte reload Apache.

    Sledujte trendy a novinky pro bezpečné použití HTTPS

    Pro aktuální doporučení ohledně použití SSL certifikátu doporučujeme sledovat Magazín SSLmarketu věnovaný této problematice na blog.sslmarket.cz.

    SSLmarket - největší prodejce ve střední Evropě