Jak nastavit https v kombinaci se službou Cloudflare

Pokud využíváte službu Cloudflare a zároveň chcete nastavit Let's Encrypt https certifikát zdarma, při automatickém prodloužení certifikátu po 90 dnech pohoříte. Hostingové společnosti totiž většinou automaticky obnovují certifikát Let's Encrypt jen za předpokladu, že máte DNS záznamy nastavené na jejich servery. Zde nastává problém s Cloudflare, protože pro možnost využívání této služby musíte přesměrovat DNS záznamy domény na jejich servery.

Máme zkušenosti hned z několika webů, kdy se po 90 dnech u Cloudflare neobnovil certifikát Let's Encrypt a web přestal fungovat. Podíváme se tedy na to, jak nastavit Cloudflare a https na svém webu.

Cloudflare nastaví HTTPS za vás

Cloudflare nastaví https za vás, aniž byste museli na svém webu mít nastavený vlastní SSL certifikát. Pokud vám nebude vadit, že váš web na webhostingu bude bez SSL certifikátu a pouze Cloudflare může načítat jeho data bez SSL, stačí nastavit vše potřebné v administraci Cloudflare a nemusíte tento článek číst dále.

My se zde podíváme na návod, jak nastavit HTTPS přímo na webhostingu a poté nastavit Cloudflare tak, aby tato služba použila vlastní certifikát. To vše za podmínky, že oba SSL certifikáty budou zdarma a certifikát na vlastním webhostingu (který čte vlastně jen Cloudflare) se bude automaticky prodlužovat.

Krok 1: Nastavení self-signed SSL certifikátu

Jako první krok musíme nastavit na webhostingu self-signed certifikát, tedy certifikát, který není podepsaný žádnou autoritou. Vygenerujete si ho zdarma v administraci webhostingu a prodlužuje se každý rok nezávisle na tom, kam máte nastavené DNS záznamy domény.
Tento „sám sebou“ podepsaný certifikát uvidí pouze Cloudflare. Díky tomu budeme mít zabezpečenou, respektive zašifrovanou cestu ze serverů webhostingu do Cloudflare.

Krok 2: Nastavení .htaccess

Pokud si aktivujete HTTPS, respektive SSL certifikát, musíte ještě správně nastavit .htaccess. Zde výrazně doporučuji prostudovat nápovědu webhostingu nebo raději požádat o pomoc podporu vašeho webhostingu. Nám na Českém Hostingu funguje k přepsání základní části .htaccess níže uvedený kód.

Než začnete cokoli měnit, vždy si nejprve zazálohujte původní soubor .htaccess!

# upraveno na https presmerovaní
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Krok 3: Nastavení CRYPTO v Cloudflare

Poté, co nastavíte HTTPS pomocí self-signed SSL certifikátu, je třeba změnit nastavení v administraci Cloudflare. Přihlaste se do Cloudflare, jděte na stránku nastavení CRYPTO a tam si nastavte na řádku SSL: hodnotu „FULL“.
V Cloudflare v části Crypto toho jde nastavit mnohem více, proto publikujeme naše nastavení tak, jak ho na tomto webu používáme.

Nastavení Cloudflare CRYPTO pro wpmax.cz:

  • SSL: Full
  • Always use HTTPS: ON
  • HTTP Strict Transport Security (HSTS) Zapnout
    • Status: ON
    • Max-Age: 6 months (recommended)
    • Include subdomains: Off
    • Preload: Off
    • No-sniff: On
  • Opportunistic Encryption: ON
  • TLS 1.3 BETA: Enable+0RTT
  • Automatic HTTPS Rewrites: ON

Krok 3: kontrola

Na závěr si zkontrolujte, zda se úplně všechny požadavky při načítání stránek změnily z HTTP na HTTPS. Můžete k tomu použít test webpagetest.wedos.com, kde však nebudete kontrolovat rychlost načítání, ale právě to, zda se všude objeví HTTS. Kontrolu provedete následovně:

  1. Zadejte doménu a klikněte na „start test“.
  2. Ve výsledcích testu klikněte v řádku „First View“ na obrázek pod názvem „Waterfall“.
  3. V detailu načítání webu Waterfall zkontrolujte, zda se u všech očíslovaných řádků před číslem zobrazuje znak zámku symbolizující HTTPS, viz obrázek níže.
Waterfall - detailní rozbor načítání webu, včetně info o HTTPS
Waterfall – detailní rozbor načítání webu, včetně info o HTTPS

Napsat komentář