Szczegółowe statystyki strony wskazują, że nadal są osoby korzystające ze starszych wersji systemu Android (poniżej 7.1). Osoby te mogą doświadczać problemów z działaniem niektórych stron i aplikacji. W tym wpisie przybliżę przyczyny i sposoby radzenia sobie z niedogodnościami, zanim serwis DSJ2.pl także przestanie dla niektórych być dostępny.
O co chodzi?
Let's Encrypt to organizacja powołana, by dostarczać darmowe i łatwo dostępne certyfikaty TLS (SSL) dla stron. Umożliwiają one łączenie z serwerem po protokole HTTPS, co ma szereg korzyści związanych głównie z bezpieczeństwem. Aktualnie już 363 miliony stron korzystają z LE – w tym DSJ2.pl.
Jako że LE to stosunkowo młody twór (2015/2016), ich główny certyfikat nie był jeszcze domyślnie instalowany na urządzeniach / systemach powstałych w tamtych czasach. Aby obejść ten problem, organizacja postanowiła wystawiać dla stron certyfikaty cross-signed, zawierające dodatkowo certyfikat DST Root CA X3, który był zgodny ze starszymi systemami. Ciekawostka: ten certyfikat główny wygasł na systemach już w 2021 roku, jednak stare Androidy to ignorowały i nadal wszystko działało na nich poprawnie. Do czasu...
W lipcu 2023 r. Let's Encrypt ogłosił, że w ciągu roku przestanie wystawiać certyfikaty cross-signed, a tym samym wspierać starsze wersje Androida. Zmiana odbywa się etapami:
- 8 lutego 2024 – przestały być domyślnie wystawiane certyfikaty starego typu, jednak nadal będzie można je wygenerować ręcznie,
- 6 czerwca 2024 – całkowicie zostanie wyłączona możliwość uzyskania takich certyfikatów,
- 30 września 2024 – maksymalna data, gdy wygasną wszystkie wystawione certyfikaty cross-signed.
W rezultacie wszystkie strony korzystające z Let's Encrypt, jak również funkcje aplikacji wymagające połączenia z takimi stronami (np. udostępnianie powtórek w grze DSJ2 Mobile), przestaną działać na Androidach 7.0 i starszych (w większości już nie działają).
Co robić?
Jeśli z jakichś względów nie chcesz / nie możesz aktualnie po prostu zmienić telefonu na nowszy, masz kilka innych opcji:
- ręczna aktualizacja systemu – czasochłonne i dość skomplikowane, można znaleźć poradniki w internecie dla danego modelu; wiąże się to jednak z wyczyszczeniem danych i koniecznością przywracania z backupu i nie zawsze może się w pełni udać,
- instalacja certyfikatu głównego LE na urządzeniu – można skorzystać z tego poradnika; niestety, opcja ta nie zawsze działa poprawnie, prawdopodobnie wymaga dostępu roota (odblokowania telefonu = wyczyszczenia danych),
- korzystanie z przeglądarki Firefox Mobile, która ma własny certificate store, dzięki czemu bez problemu ufa stronom na LE; niestety, nie ma to wpływu na działanie stron w innych aplikacjach.
Są także opcje po stronie właściciela serwera / aplikacji, by przywrócić działanie dla starszych Androidów:
- ręczne wygenerowanie starego typu certyfikatu – jeśli na serwerze używany jest program certbot w wersji 1.12+, można zastosować komendę:
sudo certbot certonly --force-renew -d nazwadomeny.pl --preferred-chain "DST Root CA X3"
możliwość ta jest dostępna tylko do 6 czerwca br.; w ten sposób zostało przywrócone pełne działanie dla DSJ2.pl – 5 czerwca wygenerujemy ostatni certyfikat, który przedłuży dostępność naszej strony dla starych Androidów o kolejne 3 miesiące (maksymalna ważność certyfikatu LE), - ustawienie aplikacji tak, by używała własnego certificate store (a nie tylko systemowego), podobnie jak Firefox,
- przejście na komercyjnego dostawcę certyfikatów, który nadal wspiera stare urządzenia.
Źródła:
https://letsencrypt.org/2023/07/10/cross-sign-expiration
https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/
https://community.letsencrypt.org/t/questions-regarding-shortening-the-lets-encrypt-chain-of-trust/201581
Frazy mogące pomóc w znalezieniu artykułu w Google: android 4/5/6/7, strony nie działają, problem ze stronami, błąd certyfikatu bezpieczeństwa.