Android IKEv2 Trust-Fehler: D'Zwëschen-CA schécken, net eng Root
D'Telefon refuséiert den Gateway, well d'Kette déi se kritt huet ze fréi ophält. Entscheet: d'Zwëschenzertifikat schécken, d'Identitéit fixéieren oder den Schlësseltyp änneren.
D'Telefon refuséiert sech ze verbannen an dréckt No trusted RSA public key found for vpn.example.net, während déiselwecht Gateway-Zertifikat vun engem Laptop am selwechten Netz funktionéiert. Den verlockende Schrëtt ass, d'Zertifikat nei auszestellen. Ier Dir dat maacht, fannt eraus, wéi eng vun dräi Feeler Dir hutt, well just eng dovun iwwer den Inhalt vum Zertifikat geet. D'Noriicht deckt eng onkomplett Kette, eng Identitéitsmëssverständnis an en net ënnerstëtzten Schlëssel oder Ënnerschrëft of, an all huet eng aner Reparatur.
Dräi Feeler hannert enger Noriicht
Android baut eng Kette vum Gateway-Zertifikat bis zur CA, déi am VPN-Profil ausgewielt ass, an vergläicht dann den Servernumm mat dem Profil. D'Notifikatioun mellt d'Resultat, net d'Etapp. En Trust-Fehler heescht, datt d'Kette net aus den Zertifikaten, déi am Austausch geliwwert goufen, kompletéiert konnt ginn; en Identitéitsfehler heescht, datt d'Kette validéiert huet, awer den Numm net gepasst huet; en Algorithmusfehler heescht, datt den Apparat oder de Profil den Schlësseltyp oder d'Ënnerschrëft net akzeptéiert.
| 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 |
Entscheet mat Beweiser, amplaz Reparaturen der Rei no ze probéieren. Een Versuch op Log-Niveau 2 géint den Daemon seet Iech, a wéi enger Zeil Dir sidd, an et kascht manner wéi en Zertifikat nei auszestellen, dat ni falsch war.
Entscheet éischt: ass déi ganz Kette ukomm?
strongSwan schéckt d'Zertifikat, deen fir déi Verbindung konfiguréiert ass, an Zwëschenzertifikater sinn separat Umeldungsinformatiounen. Si mussen als CA-Zertifikater geluede ginn, ier den Daemon se an engem Payload placéiere kann, dofir eng Konfiguratioun, wou d'Serverzertifikat vun engem Zwëschenzertifikat ënnerschriwwe gëtt, d'Root den Trust-Anker ass an d'Zwëschenzertifikat nëmmen am Build-Verzeechnis vun der CA läit, produzéiert genau dëse Fehler: just d'Blat um Draht, d'Kette fréi um Telefon eriwwer.
Iwwerpréift, wat den Daemon hält, mat swanctl --list-certs op enger swanctl-Installatioun oder mat ipsec listcerts beim eelere Starter. D'Zwëschenzertifikat sollt als CA-Zertifikat mam Root driwwer erschéngen. Wann et feelt, hëlleft keng Clientoptioun; wann et do ass, gitt op déi nächst Fro.
Dann iwwerpréift, ob et geschéckt géif ginn. D'swanctl.conf-Referenz dokumentéiert send_cert, wou seng Standard ifasked Zertifikater nëmmen dann schéckt, wann de Peer gefrot huet; always schéckt ëmmer. D'Legacy-Äquivalent ass leftsendcert=always an ipsec.conf. Dës Astellung kontrolléiert d'Schécken, net d'Disponibilitéit, dofir kann si keen Zwëschenzertifikat kompenséieren, dat den Daemon ni gelueden huet.
Wann d'Kette kuerz ass, lued d'Zwëschenzertifikat do, wou den Daemon kuckt
Setzt d'Zwëschenzertifikat an den CA-Verzeechnis amplaz nieft dem Blat: /etc/ipsec.d/cacerts fir eng ipsec.conf-Konfiguratioun, /etc/swanctl/x509ca fir swanctl, oder de Pad, deen Äre Paket ersetzt. Lued d'Konfiguratioun nei a lëscht d'Zertifikater nach eng Kéier. E puer Versiounen schécken och e Bündel, deen d'Kette am Blatfile enthält, awer den CA-Verzeechnis ass déi portabel Léisung iwwer Versiounen a Pakete.
Iwwerpréift och vun der Client-Säit. D'Telefon gesäit nëmmen, wat den Austausch bruecht huet, dofir sollt den Daemon-Log op Niveau 2 d'Zwëschenzertifikat an den iwwerdroenen Zertifikater weisen. Wann de Log et weist an d'Telefon nach ëmmer feelt, sidd Dir an enger anerer Zeil vun der Tabell, an d'CA-Fichieren weider unzepassen ännert näischt um Resultat.
Wann d'Kette komplett ass, hält op d'Zertifikater ze beaarbechten
En Identitéitsfehler ass eng Mëssverständnis tëscht dem Numm am VPN-Profil an dem Numm am Zertifikat. Android vergläicht d'Serveridentitéit, déi Dir konfiguréiert hutt, mam Zertifikat, deen et validéiert huet, dofir feelt e Profil, deen op eng Adress weist, während d'Zertifikat en Hostnumm nennt, oder e Profil, deen en Hostnumm nennt, deen d'Zertifikat net deckt, no enger erfollegräicher Kettevalidéierung. Fixéiert déi Säit, déi falsch ass, a haltt de Profil an d'Zertifikat ausgeriicht, wann eng vun deenen ännert.
En Algorithmusfehler erschéngt mat enger gülteger Kette an engem passenden Numm. Android-Versiounen ënnerscheede sech doran, wéi eng Schlësseltypen a Ënnerschrëftsschemata si akzeptéieren, an den Profiltyp selwer beschränkt d'Optiounen. Wann de Gateway eng eeler oder ongewéinlech Kombinatioun benotzt, vergläicht se mat deem, wat den Apparat ënnerstëtzt, ier Dir unhëllt, datt d'Zertifikat korrupt ass. Den Daemon-Log weist den Handshake méi wäit wéi am Trust-Fall, dat ass d'Signal, datt d'Kette net méi de Problem ass.
Installéiert d'Zwëschenzertifikat net als Benotzer-Root um Telefon
D'fehlend Zwëschenzertifikat als Benotzerzertifikat um Telefon z'installéieren, mécht d'Warnung ewech an ännert dem Telefon säi Trust-Modell fir all App, déi benotzerinstalléiert Roots akzeptéiert. Et verstoppt och e Liwwerfehler, deen den nächsten Client trëfft, an et léisst de Gateway eng onkomplett Kette un all zukünfteg Apparat schécken. Déi dauerhaft Reparatur ass um Server, eng Kéier, fir all Clienten.
Haalt déi dräi Entscheedungen am Ännerungsprotokoll getrennt: wéi eng Zertifikater iwwerdroe goufen, wéi eng Identitéit verglach gouf a wéi en Algorithmus ausgehandelt gouf. E Gateway, deen ëmmer seng voll Kette schéckt, e Profil, deen d'Zertifikat richteg nennt, an e Schlësseltyp, deen d'Flott ënnerstëtzt, sinn dräi kleng Fakten, an si sinn de ganzen Fehler.