Androidin IKEv2-luottamusvirhe: lähetä välisolmu-CA, älä juurta
Puhelin hylkää yhdyskäytävän, koska saatu ketju päättyy liian aikaisin. Päätä: lähetä välisolmu, korjaa identiteetti tai vaihda avaintyyppi.
Puhelin kieltäytyy yhdistämästä ja tulostaa No trusted RSA public key found for vpn.example.net, vaikka sama yhdyskäytävän varmenne toimii kannettavasta samassa verkossa. Houkutteleva askel on myöntää varmenne uudelleen. Selvitä sitä ennen, mikä kolmesta viasta sinulla on, sillä vain yksi niistä koskee varmenteen sisältöä.
Kolme vikaa yhden viestin takana
Android rakentaa ketjun yhdyskäytävän varmenteesta VPN-profiilissa valittuun CA:han ja vertaa sitten palvelimen nimeä profiiliin. Ilmoitus kertoo tuloksen, ei vaihetta. Luottamusvika tarkoittaa, ettei ketjua voitu täydentää vaihdossa toimitetuilla varmenteilla; identiteettivika, että ketju on kelvollinen mutta nimi ei täsmää; algoritmivika, ettei laite tai profiili hyväksy avaintyyppiä tai allekirjoitusta.
| 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 |
Päätä todisteiden perusteella sen sijaan, että kokeilisit korjauksia järjestyksessä. Yksi yritys lokitasolla 2 daemonissa kertoo, missä rivillä olet, ja se maksaa vähemmän kuin varmenteen uudelleenmyöntäminen, joka ei koskaan ollut väärin.
Päätä ensin: tuliko koko ketju perille?
strongSwan lähettää kyseiselle yhteydelle määritetyn varmenteen, ja välivarmenteet ovat erillisiä tunnuksia. Ne on ladattava CA-varmenteina ennen kuin daemon voi sijoittaa ne hyötykuormaan, joten asettelu, jossa palvelimen varmenne on välisolmun allekirjoittama, juuri on luottamuksen ankkuri ja välisolmu elää vain CA:n build-hakemistossa, tuottaa juuri tämän vian: vain lehti langalla ja ketju päättyy aikaisin puhelimessa.
Tarkista, mitä daemonilla on, komennolla swanctl --list-certs swanctl-asennuksessa tai ipsec listcerts vanhemmalla starterilla. Välisolmun pitäisi näkyä CA-varmenteena juuri yläpuolellaan. Jos se puuttuu, mikään asiakasasetus ei auta; jos se on, siirry seuraavaan kysymykseen.
Tarkista sitten, lähetettäisiinkö se. swanctl.conf-viite dokumentoi send_cert, jonka oletusarvo ifasked lähettää varmenteet vain kun vastapuoli on pyytänyt, kun taas always lähettää aina. Vanha vastine on leftsendcert=always tiedostossa ipsec.conf. Asetus ohjaa lähettämistä, ei saatavuutta, joten se ei korvaa välisolmua, jota daemon ei koskaan ladannut.
Jos ketju on lyhyt, lataa välisolmu sinne, mistä daemon etsii
Sijoita välisolmu CA-hakemistoon, ei lehden viereen: /etc/ipsec.d/cacerts asettelulle, jossa on ipsec.conf, /etc/swanctl/x509ca swanctlille tai polku, jonka pakettisi korvaa. Lataa asetukset uudelleen ja luettele varmenteet. Jotkin versiot lähettävät myös nipun, joka sisältää ketjun lehtitiedostossa, mutta CA-hakemisto on siirrettävä järjestely versioiden ja pakettien välillä.
Tarkista myös asiakkaan puolelta. Puhelin näkee vain sen, mitä vaihto kuljetti, joten daemonin loki tasolla 2 näyttää välisolmun lähetettyjen varmenteiden joukossa. Jos loki näyttää sen ja puhelin silti epäonnistuu, olet taulukon toisella rivillä, eikä CA-tiedostojen säätäminen muuta tulosta.
Jos ketju on täydellinen, lopeta varmenteiden muokkaaminen
Identiteettivika on ero VPN-profiilin nimen ja varmenteen nimen välillä. Android vertaa määrittämääsi palvelinidentiteettiä varmenteeseen, jonka se validoi, joten profiili, joka osoittaa osoitteeseen varmenteen nimetessä isäntänimen, tai profiili, jonka isäntänimeä varmenne ei kata, epäonnistuu onnistuneen ketjuvalidoinnin jälkeen. Korjaa väärä puoli ja pidä profiili ja varmenne linjassa.
Algoritmivika ilmenee kelvollisella ketjulla ja täsmäävällä nimellä. Android-versiot eroavat siinä, mitkä avaintyypit ja allekirjoitusmenetelmät ne hyväksyvät, ja profiilityyppi itse rajoittaa vaihtoehtoja. Jos yhdyskäytävä käyttää vanhempaa tai epätavallista yhdistelmää, vertaa sitä laitteen tukeen ennen kuin oletat varmenteen vioittuneen. Loki näyttää, että kättely etenee pidemmälle kuin luottamustapauksessa, mikä on merkki siitä, ettei ketju ole enää ongelma.
Älä asenna välisolmua käyttäjän juurena puhelimeen
Puuttuvan välisolmun asentaminen käyttäjävarmenteeksi puhelimeen hävittää varoituksen ja muuttaa puhelimen luottamusmallia jokaiselle sovellukselle, joka hyväksyy käyttäjän asentamat juuret. Se myös kätkee toimitusvirheen, joka osuu seuraavaan asiakkaaseen, ja jättää yhdyskäytävän lähettämään puutteellisen ketjun jokaiselle tulevalle laitteelle. Kestävä korjaus on palvelimella, kerran, kaikille asiakkaille.
Pidä kolme päätöstä erillään muutoslokissa: mitkä varmenteet siirrettiin, mikä identiteetti verrattiin ja mikä algoritmi neuvoteltiin. Yhdyskäytävä, joka lähettää aina täyden ketjunsa, profiili, joka nimeää varmenteen oikein, ja avaintyyppi, jota laivue tukee, ovat kolme pientä tosiasiaa, ja ne ovat koko tämä vika.