Telefon odmawia połączenia i wypisuje No trusted RSA public key found for vpn.example.net, podczas gdy ten sam certyfikat bramy działa z laptopa w tej samej sieci. Kuszącym ruchem jest ponowne wydanie certyfikatu. Zanim to zrobisz, ustal, który z trzech błędów masz, ponieważ tylko jeden z nich dotyczy zawartości certyfikatu. Komunikat obejmuje niekompletny łańcuch, niezgodność tożsamości oraz nieobsługiwany klucz lub podpis, a każdy ma inną naprawę.

Trzy błędy za jednym komunikatem

Android buduje łańcuch od certyfikatu bramy do CA wybranego w profilu VPN, a następnie porównuje nazwę serwera z profilem. Powiadomienie podaje wynik, a nie etap. Błąd zaufania oznacza, że łańcucha nie można było ukończyć z certyfikatów dostarczonych w wymianie; błąd tożsamości oznacza, że łańcuch został zweryfikowany, ale nazwa się nie zgadzała; błąd algorytmu oznacza, że urządzenie lub profil nie akceptuje typu klucza albo podpisu.

What you seeWhat it points toFirst move
Chain stops after the leaf in the daemon logintermediate not loaded or not sentload the intermediate as CA material
Chain validates, name differs from the profileidentity mismatchfix the profile name or the certificate SAN
Chain validates, handshake still failskey or signature not acceptedcompare key type against the device

Decyduj na podstawie dowodów, a nie próbując napraw po kolei. Jedna próba na poziomie logu 2 wobec demona mówi, w którym wierszu jesteś, i kosztuje mniej niż ponowne wydanie certyfikatu, który nigdy nie był błędny.

Najpierw zdecyduj: czy dotarł cały łańcuch?

strongSwan wysyła certyfikat skonfigurowany dla tego połączenia, a certyfikaty pośrednie to osobne poświadczenia. Muszą zostać wczytane jako certyfikaty CA, zanim demon umieści je w ładunku, więc układ, w którym certyfikat serwera jest podpisany przez certyfikat pośredni, korzeń jest kotwicą zaufania, a certyfikat pośredni znajduje się tylko w katalogu budowania CA, daje dokładnie ten błąd: tylko liść na łączu, łańcuch kończy się wcześnie na telefonie.

Sprawdź, co ma demon, za pomocą swanctl --list-certs we wdrożeniu swanctl lub ipsec listcerts ze starszym starterem. Certyfikat pośredni powinien pojawić się jako certyfikat CA z korzeniem nad nim. Jeśli go brakuje, żadna opcja klienta nie pomoże; jeśli jest, przejdź do następnego pytania.

Następnie sprawdź, czy zostanie wysłany. Dokumentacja swanctl.conf opisuje send_cert, którego domyślne ifasked wysyła certyfikaty tylko wtedy, gdy druga strona o to poprosi; always wysyła zawsze. Starszym odpowiednikiem jest leftsendcert=always w ipsec.conf. To ustawienie kontroluje wysyłanie, a nie dostępność, więc nie zrekompensuje certyfikatu pośredniego, którego demon nigdy nie wczytał.

Jeśli łańcuch jest krótki, wczytaj certyfikat pośredni tam, gdzie szuka demon

Umieść certyfikat pośredni w katalogu CA, a nie obok liścia: /etc/ipsec.d/cacerts dla konfiguracji ipsec.conf, /etc/swanctl/x509ca dla swanctl albo ścieżka, którą zastępuje twoja paczka. Przeładuj konfigurację i ponownie wylistuj certyfikaty. Niektóre wersje wysyłają też pakiet zawierający łańcuch w pliku liścia, ale katalog CA to przenośne rozwiązanie w różnych wersjach i pakietach.

Sprawdź także po stronie klienta. Telefon widzi tylko to, co przeniosła wymiana, więc log demona na poziomie 2 powinien pokazać certyfikat pośredni wśród przesłanych certyfikatów. Jeśli log go pokazuje, a telefon nadal zawodzi, jesteś w innym wierszu tabeli, a dalsze dostrajanie plików CA nie zmieni wyniku.

Jeśli łańcuch jest kompletny, przestań edytować certyfikaty

Błąd tożsamości to niezgodność między nazwą w profilu VPN a nazwą w certyfikacie. Android porównuje skonfigurowaną tożsamość serwera z certyfikatem, który zweryfikował, więc profil wskazujący adres, gdy certyfikat podaje nazwę hosta, albo profil podający nazwę hosta, której certyfikat nie obejmuje, zawodzi po pomyślnej weryfikacji łańcucha. Napraw stronę, która jest błędna, i utrzymuj zgodność profilu z certyfikatem, gdy którakolwiek się zmieni.

Błąd algorytmu pojawia się przy ważnym łańcuchu i pasującej nazwie. Wersje Androida różnią się akceptowanymi typami kluczy i schematami podpisów, a sam typ profilu ogranicza opcje. Jeśli brama używa starszej lub nietypowej kombinacji, porównaj ją z tym, co obsługuje urządzenie, zanim uznasz certyfikat za uszkodzony. Log demona pokaże, że uzgadnianie idzie dalej niż w przypadku zaufania, i to jest sygnał, że łańcuch nie jest już problemem.

Nie instaluj certyfikatu pośredniego jako roota użytkownika na telefonie

Zainstalowanie brakującego certyfikatu pośredniego jako certyfikatu użytkownika na telefonie usuwa ostrzeżenie i zmienia model zaufania telefonu dla każdej aplikacji, która akceptuje rooty instalowane przez użytkownika. Ukrywa też błąd dostarczania, który dotknie następnego klienta, i pozostawia bramę wysyłającą niekompletny łańcuch każdemu przyszłemu urządzeniu. Trwała naprawa jest na serwerze, raz, dla wszystkich klientów.

Trzymaj trzy decyzje osobno w zapisie zmian: które certyfikaty przesłano, która tożsamość została porównana i który algorytm wynegocjowano. Brama, która zawsze wysyła pełny łańcuch, profil, który poprawnie nazywa certyfikat, i typ klucza obsługiwany przez flotę to trzy małe fakty, i stanowią całość tego błędu.

Powiązane artykuły