Jak nastavit https v kombinaci se službou Cloudflare

Pokud využíváte službu Cloudflare a zároveň chcete nastavit https certifikát zdarma Let's Encrypt, tak 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 pokud máte DNS záznamy nastavené na jejich servery. A zde je problém s Cloudflare protože, abyste tuto službu mohli využívat, musíte přesměrovat DNS záznamy domény na jejich servery.
Přesně tohle se mě stalo u několika webů po 90 dnech u Cloudflare, kdy se neobnovil certifikát Let's Encrypt a web nefungoval. Podíváme se na to, jak nastavit Cloudflare a https na svém webu.

Cloudflare umožňuje generovat vlastní https za vás

Cloudflare umožňuje nastavit https za Vás a ani na webu nemusíte 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, tak stačí nastavit vše potřebné v administraci Cloudflare a nemusíte dál číst tento článek.

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. A to vše za podmínky, že oba SSL certifikáty budou zdarma a certifikát na mém webhostingu (který čte vlastně jen Cloudflare) se bude automaticky

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

Jako první krok musíme nastavit na webhostingu self-signed certifikát, tedy 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 bude vidět 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. Mě na Českém Hostingu funguje přepsání základní části .htaccess níže uvedený kód. Nejdříve si vždy zálohujte původní soubor .htaccess, než začnete cokoli měnit!!

# 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 však nastavit mnohem více, proto publikuji svoje nastavení, jak ho na tomto webu používám.

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, jestli se úplně všechny požadavky při načítání stránek změnily z HTTP na HTTPS a to díky testu webpagetest.wedos.com. V tomto testu nám nyní nejde o rychlost načítání, ale o kontrolu, zda je vše https. 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, jestli je u všech očíslovaných řádků před číslem 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ář