Chyba dôvery Android IKEv2: pošlite medziľahlý CA, nie koreňový
Telefón odmieta bránu, pretože prijatá reťaz sa končí príliš skoro. Rozhodnite: poslať medziľahlý, opraviť identitu alebo zmeniť typ kľúča.
Telefón odmieta pripojenie a vypisuje No trusted RSA public key found for vpn.example.net, zatiaľ čo ten istý certifikát brány funguje z prenosného počítača v tej istej sieti. Lákavým krokom je certifikát znovu vydať. Skôr než to urobíte, zistite, ktorú z troch porúch máte, pretože iba jedna z nich sa týka obsahu certifikátu. Správa zahŕňa neúplnú reťaz, nezhodu identity a nepodporovaný kľúč alebo podpis, a každá má inú opravu.
Tri poruchy za jednou správou
Android zostaví reťaz od certifikátu brány po CA vybranú v profile VPN a potom porovná názov servera s profilom. Oznámenie hlási výsledok, nie fázu. Porucha dôvery znamená, že reťaz nebolo možné dokončiť z certifikátov dodaných vo výmene; porucha identity znamená, že reťaz bola overená, ale názov nesedel; porucha algoritmu znamená, že zariadenie alebo profil neprijíma typ kľúča ani podpis.
| What you see | What it points to | First move |
|---|---|---|
| Chain stops after the leaf in the daemon log | intermediate not loaded or not sent | load the intermediate as CA material |
| Chain validates, name differs from the profile | identity mismatch | fix the profile name or the certificate SAN |
| Chain validates, handshake still fails | key or signature not accepted | compare key type against the device |
Rozhodujte sa podľa dôkazov, nie skúšaním opráv po poradí. Jeden pokus na úrovni denníka 2 proti démonovi vám povie, v ktorom riadku ste, a stojí menej než opätovné vydanie certifikátu, ktorý nikdy nebol nesprávny.
Najprv rozhodnite: dorazila celá reťaz?
strongSwan odosiela certifikát nakonfigurovaný pre to spojenie a medziľahlé certifikáty sú samostatné poverenia. Musia sa načítať ako certifikáty CA, kým ich démon môže umiestniť do užitočného zaťaženia, preto usporiadanie, v ktorom je certifikát servera podpísaný medziľahlým, koreň je kotva dôvery a medziľahlý existuje iba v adresári zostavenia CA, vytvára presne túto poruchu: na linke iba list, reťaz sa na telefóne končí skoro.
Skontrolujte, čo démon má, pomocou swanctl --list-certs v nasadení swanctl alebo ipsec listcerts so starším starterom. Medziľahlý by sa mal objaviť ako certifikát CA s koreňom nad ním. Ak chýba, žiadna možnosť klienta nepomôže; ak je prítomný, prejdite na ďalšiu otázku.
Potom skontrolujte, či by sa odoslal. Referencia swanctl.conf dokumentuje send_cert, ktorého predvolená hodnota ifasked odosiela certifikáty len vtedy, keď partner požiadal; always odosiela vždy. Starším ekvivalentom je leftsendcert=always v ipsec.conf. Toto nastavenie riadi odosielanie, nie dostupnosť, takže nemôže nahradiť medziľahlý certifikát, ktorý démon nikdy nenačítal.
Ak je reťaz krátka, načítajte medziľahlý tam, kde démon hľadá
Umiestnite medziľahlý do adresára CA, nie vedľa listu: /etc/ipsec.d/cacerts pre konfiguráciu ipsec.conf, /etc/swanctl/x509ca pre swanctl alebo cestu, ktorú nahradí váš balík. Znova načítajte konfiguráciu a znova vypíšte certifikáty. Niektoré verzie odosielajú aj balík obsahujúci reťaz v súbore listu, ale adresár CA je prenosné usporiadanie naprieč verziami a balíkmi.
Overte to aj zo strany klienta. Telefón vidí iba to, čo výmena preniesla, preto by denník démona na úrovni 2 mal ukázať medziľahlý medzi odoslanými certifikátmi. Ak ho denník ukazuje a telefón stále zlyháva, ste v inom riadku tabuľky a ďalšie upravovanie súborov CA výsledok nezmení.
Ak je reťaz úplná, prestaňte upravovať certifikáty
Porucha identity je nezhoda medzi názvom v profile VPN a názvom v certifikáte. Android porovnáva vami nakonfigurovanú identitu servera s certifikátom, ktorý overil, preto profil ukazujúci na adresu, kým certifikát uvádza názov hostiteľa, alebo profil uvádzajúci názov hostiteľa, ktorý certifikát nepokrýva, zlyhá po úspešnom overení reťaze. Opravte nesprávnu stranu a udržujte profil a certifikát zosúladené, keď sa ktorýkoľvek zmení.
Porucha algoritmu sa objavuje s platnou reťazou a zodpovedajúcim názvom. Verzie Androidu sa líšia v tom, ktoré typy kľúčov a schémy podpisu prijímajú, a samotný typ profilu obmedzuje možnosti. Ak brána používa staršiu alebo nezvyčajnú kombináciu, porovnajte ju s tým, čo zariadenie podporuje, skôr než predpokladáte, že certifikát je poškodený. Denník démona ukáže, že handshake postupuje ďalej než v prípade dôvery, a to je signál, že reťaz už nie je problém.
Neinštalujte medziľahlý ako používateľský koreň na telefóne
Inštalácia chýbajúceho medziľahlého ako používateľského certifikátu na telefóne odstráni varovanie a zmení model dôvery telefónu pre každú aplikáciu, ktorá prijíma používateľom nainštalované korene. Tiež skryje chybu doručenia, ktorá zasiahne ďalšieho klienta, a nechá bránu odosielať neúplnú reťaz každému budúcemu zariadeniu. Trvalá oprava je na serveri, raz, pre všetkých klientov.
Držte tri rozhodnutia oddelene v zázname zmien: ktoré certifikáty boli prenesené, ktorá identita bola porovnaná a ktorý algoritmus bol dohodnutý. Brána, ktorá vždy odosiela svoju úplnú reťaz, profil, ktorý správne pomenúva certifikát, a typ kľúča, ktorý flotila podporuje, sú tri malé fakty a tvoria celú túto poruchu.