Jak zjistím, jestli je certifikát 100% nasazený?
Stačí jít na httpstatus.io. Tam zadáte adresu do formuláře a hned vidíte výsledek.
Špatně nastavené DNS záznamy
DNS záznam typu A musí mířit na stránku s obsahem. Jinak nepůjde certifikát vygenerovat. U hostingů se to týká i subdomén.
Na alternativní adrese pro testování je web nezabezpečený
Ano, je to tak. Tato alternativní adresa slouží pouze pro testovací účely a pro vývoj nového webu. Na ní se certifikát negeneruje. Obejít to lze novou doménou a nastavením jako alias k té testovací.
Certifikát mám nasazený, ale stále se ukazuje „nezabezpečeno“
Mixed content
Nejčastější příčinou je právě tzv. Mixed content. To znamená, že máte pravděpodobně na webu odkaz na nějaký obrázek, skript, CSS atd, na který se odkazujete přes HTTP, nikoli přes HTTPS. Pokud se má totiž stránka pokládat za zabezpečenou, musí veškerý obsah být také zabezpečený.
Nejlépe to zjistíte tak, že se podíváte přímo do kódu. V prohlížeči klikněte na stránku pravým tlačítkem myši a dejte Zobrazit zdrojový kód. Projděte ho a zkontrolujte, zda tam nemáte někde http://. Nalezenou chybu pak opravte v programu, kde jste stránky vytvářeli.
Když zadám neco.cz tak se ukáže nezabezpečeno. Když ale zadám https://neco.cz tak už to zabezpečeně vypadá…
Fungují totiž obě varianty. A v tom je ta potíž. Prohlížeč nijak nezjistí, že má komunikovat pouze přes https. Navíc stránku pravděpodobně už zalistovali vyhledávače jako http, takže i přístup z nich je přes http… Řešením je komunikaci přes https prostě vynutit. Tomu se říká HSTS (Strict Transport Security)
HSTS na WordPressu
Pokud jsou stránky vytvořeny ve WordPressu, tak lze situaci vyřešit pluginem. Dobré zkušenosti máme s WP SSL force. Ten jde stáhnout z oficiálního repozitáře WordPressu.
HSTS pomocí hlavičky
A pokud máte stránky vytvořené v něčem jiném, je další možností upravit hlavičku webu. Tam stačí přidat:
Strict-Transport-Security: max-age=31536000; includeSubDomains
To číslo 31536000 znamená počet vteřin a v tomto případě odpovídá jednomu roku. Znamená to, že prohlížeč ví že minimálně rok nesmí komunikovat jinak, než přes https. Dále parametr includeSubDomains znamená, že to platí i pro subdomény.