ładowanie
dsj2pl
🇵🇱🇬🇧

Let's Encrypt wyłącza wsparcie dla starych Androidów

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:

  1. 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ć,
  2. 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),
  3. 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:

  1. 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),
  2. ustawienie aplikacji tak, by używała własnego certificate store (a nie tylko systemowego), podobnie jak Firefox,
  3. 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.

Dawid