Грешка поверења Android IKEv2: пошаљите посредни CA, не корени
Телефон одбија пролаз јер примљена верига престаје прерано. Одлучите: послати посредни, поправити идентитет или променити тип кључа.
Телефон одбија везу и исписује No trusted RSA public key found for vpn.example.net, док исти сертификат пролаза ради са преносног рачунара у истој мрежи. Примамљив потез је поновно издавање сертификата. Пре тога утврдите која је од три грешке присутна, јер само једна од њих тиче се садржаја сертификата. Порука покрива непотпуну веригу, неподударност идентитета и неподржани кључ или потпис, а свака има другачији поправак.
Три грешке иза једне поруке
Android гради веригу од сертификата пролаза до CA изабраног у VPN профилу, затим упоређује име сервера са профилом. Обавештење извештава о исходу, а не о фази. Грешка поверења значи да верига није могла бити довршена из сертификата достављених у размени; грешка идентитета значи да је верига потврђена, али име није одговарало; грешка алгоритма значи да уређај или профил не прихвата тип кључа или потпис.
| 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 |
Одлучујте на основу доказа уместо испробавања поправака редом. Један покушај на нивоу дневника 2 према демону каже у ком сте реду, и кошта мање од поновног издавања сертификата који никада није био погрешан.
Прво одлучите: да ли је стигла цела верига?
strongSwan шаље сертификат конфигурисан за ту везу, а посредни сертификати су засебне акредитиве. Морају се учитати као CA сертификати пре него што их демон може ставити у терет, па распоред у ком је сертификат сервера потписан посредним, корен је сидро поверења, а посредни постоји само у градићу CA даје тачно ову грешку: само лист на жици, верига се рано завршава на телефону.
Проверите шта демон има помоћу swanctl --list-certs у swanctl поставци или ipsec listcerts са старијим starter-ом. Посредни би требало да се појави као CA сертификат са кореном изнад њега. Ако недостаје, ниједна клијентска опција не помаже; ако постоји, пређите на следеће питање.
Затим проверите да ли би био послат. Референца swanctl.conf документује send_cert, чија подразумевана вредност ifasked шаље сертификате само кад је друга страна затражила; always шаље увек. Стари еквивалент је leftsendcert=always у ipsec.conf. Та поставка контролише слање, не доступност, па не може надокнадити посредни који демон никада није учитао.
Ако је верига кратка, учитајте посредни тамо где демон тражи
Ставите посредни у CA директоријум, а не поред листа: /etc/ipsec.d/cacerts за ipsec.conf поставку, /etc/swanctl/x509ca за swanctl или путању коју замењује ваш пакет. Поново учитајте конфигурацију и поново излистајте сертификате. Неке верзије шаљу и пакет који садржи веригу у датотеци листа, али CA директоријум је преносив распоред кроз верзије и пакете.
Проверите и са стране клијента. Телефон види само оно што је размена пренела, па би запис демона на нивоу 2 требало да покаже посредни међу послатим сертификатима. Ако га запис показује, а телефон и даље не успева, налазите се у другом реду табеле, и даље прилагођавање CA датотека неће променити исход.
Ако је верига потпуна, престаните да уређујете сертификате
Грешка идентитета је неподударност између имена у VPN профилу и имена у сертификату. Android упоређује конфигурисани идентитет сервера са сертификатом који је потврдио, па профил који показује на адресу док сертификат наводи име хоста, или профил који наводи име хоста које сертификат не покрива, не успева после успешне провере вериге. Поправите погрешну страну и држите профил и сертификат усклађеним кад се било која промени.
Грешка алгоритма се појављује са ваљаном веригом и одговарајућим именом. Android издања се разликују по томе које типове кључева и шеме потписа прихватају, а сам тип профила ограничава опције. Ако пролаз користи старију или необичну комбинацију, упоредите је са оним што уређај подржава пре него што претпоставите да је сертификат оштећен. Запис демона ће показати да руковање напредује даље него у случају поверења, и то је сигнал да верига више није проблем.
Не инсталирајте посредни као кориснички корен на телефону
Инсталирање посредног као корисничког сертификата на телефону уклања упозорење и мења модел поверења телефона за сваку апликацију која прихвата кориснички инсталиране корене. Такође скрива грешку доставе која ће погодити следећег клијента и оставља пролаз да шаље непотпуну веригу сваком будућем уређају. Трајни поправак је на серверу, једном, за све клијенте.
Држите три одлуке одвојено у запису промена: који су сертификати пренесени, који је идентитет упоређен и који је алгоритам договорен. Пролаз који увек шаље своју пуну веригу, профил који исправно именује сертификат и тип кључа који флота подржава три су мале чињенице, и оне чине целу ову грешку.