Většina vyhledávačů nekontroluje TLS certifikáty
Mít TLS certifikát na svém webu platný, je základní předpoklad k tomu, aby prohlížeče vůbec byly ochotné web uživateli načíst. Dává to smysl – pokud certifikát platný není, tak je něco špatně (potenciálně hodně špatně). Vyhledávače to však z nějakého důvodu neřeší.
Ale od začátku. Na svém serveru hostuji relativně mnoho webů, řada z nich je vybavena TLS certifikátem a dostupná jen po HTTPS, zbytek mi typicky nestál za tu námahu, nebyl důvod u nich TLS řešit. Když jsem pak u některých z nich po čase TLS nasadil, začal jsem v lozích vidět zvláštní věci.
Jednoduše řečeno, Seznam, Google, Bing (vyhledávač Microsoftu), Yandex a Petal (vyhledávač Huawei) dle mých logů požadovaly URL, které daný web nikdy neměl. Například /historie-iniciativy.html
na ryze anglickém webu. Tohle přeci vyhledávače nedělají, natož pak ty největší, aby slepě zkoušely URL, jestli náhodou na webu nejsou.
Nutno podotknout, že dotyčné weby neměly žádné odkazy na (neexistující) HTTPS verzi. Zbývá tedy varianta, že vyhledávače HTTPS zkouší naslepo, a když dostanou nějakou odpověď, tak ji zaindexují.
Proč? Jak je tohle možné? Popravdě, netuším. Nedává mi to smysl.
Prevence
Že se tohle bude dít, by mě nikdy nenapadlo. Takže jsem nebyl dostatečně opatrný, když jsem TLS na serveru konfiguroval, a neukotvil pro něj žádný záchytný bod, a proto Apache použil první web, který měl TLS.
Zatímco u IPv6 (a osobně přiděluji pro každou doménu vyhrazenou adresu) je to jednoduché a stačí na dané adrese neposlouchat (a tím pádem se třeba na HTTPS nikdo ani nepřipojí), u sdílené IPv4 adresy tohle možné není.
Správné proto je ve výchozí konfiguraci, pokud někdo zašle požadavek přímo na IP adresu nebo s neznámou doménou, vrátit chybu 4xx. Já použil apachovské Require all denied
, tzn. chybu 403 (Forbidden). Jako doménu lze dát localhost
a pro HTTPS použít např. certifikát se samopodpisem (je to totiž úplně jedno). Speciálně je nutné ošetřit newebové domény, pro které chcete certifikát od Let’s Encrypt, validujete je po HTTP, ale nemáte je ve webovém serveru extra zkonfigurované (protože třeba máte globální přesměrování).
Takže nyní v případě, že někdo zkusí přistoupit na HTTPS verzi webu, který HTTPS nemá, tak obdrží chybu 403 a nebude na té adrese nic indexovat. Co jsem koukal na Seznam a Bing (skrze DuckDuckGo), tak už mi aktuálně indexují jen to, co na daných webech bez HTTPS skutečně je. Nicméně poměrně dlouho trvá, než vyhledávače akceptují, že ten falešný obsah na webech skutečně není. Google ony URL zkouší dodnes, i cca dva roky od nasazení TLS, kdy po celou tu dobu dostává jen chybu 404 (Not Found). Seznam s tím přestal do dvou měsíců.
Zaškatulkováno v kategorii: Internet | 28. listopadu 2021