Aplikacja na Androida nie łączy się ze sklepem? Sprawdź certyfikat SSL
Strona w przeglądarce działa, a aplikacja na telefonie nie chce się połączyć. To prawie zawsze certyfikat — tylko nie ten problem, o którym myślisz.
Coraz więcej sklepów łączy się ze swoimi aplikacjami: magazynową, kurierską, do obsługi klienta. Wszystkie rozmawiają z serwerem sklepu przez HTTPS. I wszystkie są dużo mniej wyrozumiałe dla błędów certyfikatu niż przeglądarka na komputerze.
Dlaczego przeglądarka działa, a aplikacja nie
Przeglądarki na komputerze potrafią naprawić błędnie skonfigurowany serwer. Jeśli serwer nie wyśle certyfikatu pośredniego, przeglądarka często znajdzie go sama — w pamięci podręcznej z wcześniejszych wizyt albo pobierze go z adresu zapisanego w certyfikacie.
Aplikacje na Androidzie zwykle tego nie robią. Sprawdzają dokładnie to, co wysłał serwer. Brak certyfikatu pośredniego oznacza dla nich niezaufane połączenie i koniec rozmowy.
Android nie dopuszcza połączeń bez szyfrowania
Od Androida 9 aplikacje domyślnie nie mogą łączyć się przez zwykłe HTTP. Sklep bez certyfikatu albo z certyfikatem wygasłym nie połączy się więc z żadną współczesną aplikacją — niezależnie od tego, jak dobrze jest napisana.
Jak to sprawdzić w minutę
Wpisz domenę sklepu w sslchecker.pl i spójrz na trzy rzeczy:
- Kompletność łańcucha — musi być zielona. To najczęstsza przyczyna problemów z aplikacjami.
- Nazwa domeny w certyfikacie — musi zgadzać się z adresem, który wpisujesz w aplikacji. Certyfikat dla
sklep.plnie obejmie automatycznieapi.sklep.pl. - Termin ważności — aplikacja przestanie działać tego samego dnia, w którym certyfikat wygaśnie.
Jak naprawić niekompletny łańcuch
Na hostingu z panelem: wyłącz i włącz ponownie certyfikat Let's Encrypt — panel zainstaluje go z pełnym łańcuchem. Przy certyfikacie kupionym i wgranym ręcznie: wklej w polu „CA bundle” lub „certyfikat pośredni” plik, który dostałeś od wystawcy. Na własnym serwerze z nginx wskaż plik fullchain.pem zamiast cert.pem.
Po zmianie sprawdź domenę jeszcze raz.
Przykład z praktyki: CallerPeek
CallerPeek to aplikacja na Androida, która przy połączeniu przychodzącym pokazuje kartę klienta z Twojego sklepu: nazwisko, liczbę zamówień, wartość zakupów i status ostatniego zamówienia. Telefon łączy się bezpośrednio z serwerem sklepu, bez chmury pośrednika — dlatego wymaga HTTPS i odrzuca połączenia nieszyfrowane.
Jeśli parowanie aplikacji ze sklepem się nie udaje, pierwszym krokiem jest właśnie sprawdzenie certyfikatu domeny sklepu w sprawdzarce.