Памылка даверу IKEv2 на Android: дашліце прамежкавы 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 са старым стартарам. Прамежкавы павінен з’явіцца як сертыфікат 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 розняцца ў тым, якія тыпы ключоў і схемы подпісу яны прымаюць, і сам тып профілю абмяжоўвае опцыі. Калі шлюз выкарыстоўвае старэйшае або незвычайнае спалучэнне, параўнайце яго з тым, што падтрымлівае прылада, перш чым лічыць сертыфікат сапсаваным. Журнал дэмана пакажа, што рукапоціск ідзе далей, чым у выпадку даверу, — гэта сігнал, што ланцужок ужо не праблема.
Не ўсталёўвайце прамежкавы як каранёвы на тэлефоне
Усталёўка адсутнага прамежкавага як карыстальніцкага сертыфіката на тэлефоне прыбірае папярэджанне і змяняе мадэль даверу тэлефона для кожнай праграмы, якая прымае ўсталяваныя карыстальнікам карані. Яна таксама хавае памылку дастаўкі, якая ўдарыць па наступным кліенце, і пакідае шлюз дасылаць няпоўны ланцужок кожнай будучай прыладзе. Трывалы рамонак — на серверы, адзін раз, для ўсіх кліентаў.
Трымайце тры рашэнні асобна ў запісе змен: якія сертыфікаты перададзены, якая ідэнтычнасць параўнана і які алгарытм узгоджаны. Шлюз, што заўсёды дасылае поўны ланцужок, профіль, што правільна называе сертыфікат, і тып ключа, які падтрымлівае парк, — тры дробныя факты, і яны складаюць усю гэтую адмову.