Stručně: na této stránce si ověříte, zda má váš web správně nasazené HTTPS, porozumíte mu (vysvětlení pro různé publikum), uvidíte časté chyby a jak je opravit, dostanete jednoduchý návod jak HTTPS nasadit a doporučení pro IT (bezpečnostní hlavičky a ukázky konfigurace). Nechybí FAQ a odkazy na související analýzy.
HTTPS je způsob, jak bezpečně posílat data mezi prohlížečem a webem pomocí šifrování. Důležité je, že data po cestě nikdo nečte ani nemění, což zvyšuje důvěru i bezpečí.
HTTPS chrání přihlašování, formuláře i platební údaje. Prohlížeče weby bez HTTPS znevýhodňují: mohou zobrazovat varování, vyhledávače je hůře hodnotí a některé funkce bez HTTPS vůbec nefungují. Dnes je to standard — rychlé, často zdarma (např. Let’s Encrypt) a automatické.
HTTPS = HTTP přes TLS. Cíl: důvěrnost, integrita a autenticita serveru. Preferujte TLS 1.3 (2018) — fallback TLS 1.2 (2008), moderní šifry a silné klíče (ECDSA P‑256/P‑384, případně RSA ≥ 2048 bitů). Certifikát s platným řetězcem a SAN pro všechny domény. Aktivujte ALPN (HTTP/2, případně HTTP/3), OCSP stapling a SNI. Vynucujte 301 z HTTP na HTTPS a kanonické URL.
HSTS (Strict-Transport-Security
) zavádějte postupně: krátký max-age
(např. 3 hodiny),
poté dny/týdny; includeSubDomains
až když máte pokryté subdomény; preload
až jako poslední krok.
Pohlídejte smíšený obsah, správné CAA, ACME automatizaci (HTTP‑01/DNS‑01) a bezpečnostní hlavičky.
Princip: po prvním načtení přes HTTPS si prohlížeč zapamatuje, že doména smí pouze HTTPS po dobu max-age
.
Volby: includeSubDomains
(platí i pro subdomény) a preload
(zápis do globálního seznamu prohlížečů).
# Apache
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
# Nginx
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" always;
Jak „vrátit zpět“ (pro test/opravy):
max-age
(např. 300) a naservírujte ho přes HTTPS všem návštěvníkům.preload
je odstranění ze seznamu dlouhodobé a závisí na release cyklu prohlížečů.Pozn.: konkrétní postupy a UI se liší mezi prohlížeči a verzemi.
Pozn.: ukázky berte jako výchozí — CSP nastavujte postupně a testujte.
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "geolocation=(), camera=()"
Header always set Content-Security-Policy "upgrade-insecure-requests; default-src 'self'"
Header set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
Header set X-Content-Type-Options "nosniff"
Header set Referrer-Policy "strict-origin-when-cross-origin"
Header set Permissions-Policy "geolocation=(), camera=()"
Header set Content-Security-Policy "upgrade-insecure-requests; default-src 'self'"
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), camera=()" always;
add_header Content-Security-Policy "upgrade-insecure-requests; default-src 'self'" always;
Hlavička | Ukázka / poznámka |
---|---|
Strict-Transport-Security |
max-age=15552000; includeSubDomains; preload — přidávejte postupně. |
Content-Security-Policy |
upgrade-insecure-requests , definujte zdroje (default-src , script-src , …). |
Referrer-Policy |
Např. strict-origin-when-cross-origin . |
X-Content-Type-Options |
nosniff . |
Permissions-Policy |
Omezte rozhraní prohlížeče (kamera, geolokace apod.). |
Stránka je načtena přes HTTPS, ale některé obrázky, skripty nebo styly jedou přes HTTP. Prohlížeč pak obsah blokuje nebo varuje. Opravte URL zdrojů na HTTPS.
Certifikát nepokrývá www
nebo kořenovou doménu. Zahrňte do certifikátu obě varianty (např. example.cz
i www.example.cz
).
Adresy na HTTP se nepřesměrovávají trvale (301) na HTTPS. Zapněte přesměrování v hostingu nebo serverové konfiguraci a držte jednotné kanonické URL.
HSTS s preload
je nevratné, dokud nevyprší max-age
. Nejprve ověřte bezchybné přesměrování a HTTPS na subdoménách, teprve pak zvažte includeSubDomains
a preload
.
http://
místo https://
, nebo prohlížeč zobrazuje výstrahy o nezabezpečeném připojení.Toto používejte jen pokud doméně důvěřujete a chápete rizika (např. interní testovací systémy):
https://
.
max-age
(např. 3 hodiny), pak prodlužte. includeSubDomains
a preload
přidejte až když vše funguje.
www
i kořenovou doménu.
max-age
. includeSubDomains
rozšiřuje pravidlo na všechny subdomény. preload
zapisuje doménu do seznamu v prohlížečích, takže platí HTTPS už od první návštěvy.
http://
, certifikát je neplatný nebo neodpovídá doméně, případně je na stránce smíšený obsah. Zapněte HTTPS, opravte certifikát a načítejte všechny zdroje přes HTTPS.
https://
. V CMS aktualizujte URL webu a vyčistěte cache. Využijte hlavičku Content‑Security‑Policy: upgrade-insecure-requests
jako pomocného berličku.
Poslední aktualizace: 22. 10. 2025