Android IKEv2 ишеним катасы: тамыр эмес, аралык CA жөнөтүңүз
Телефон шлюзди четке кагат, анткени алган чынжыр эрте бүтөт. Аралык сертификатты жөнөтүүнү, идентификацияны оңдоону же ачкыч түрүн өзгөртүүнү чечиңиз.
Телефон туташуудан баш тартып, No trusted RSA public key found for vpn.example.net басып чыгарат, ал эми ошол эле шлюз сертификаты ошол эле тармактагы ноутбукта иштейт. Сертификатты кайра чыгаруу азгырыктуу кадам. Муну кылганга чейин, үч катанын кайсынысы сизде экенин аныктаңыз, анткени алардын бири гана сертификаттын мазмунуна тиешелүү. Билдирүү толук эмес чынжырды, идентификациянын дал келбестигин жана колдоого алынбаган ачкычты же кол тамганы камтыйт, жана ар биринин өзүнчө оңдоо жолу бар.
Бир билдирүүнүн артындагы үч ката
Android шлюз сертификатынан VPN профилинде тандалган CAга чейин чынжыр түзөт, анан сервердин атын профил менен салыштырат. Эскертүү баскычты эмес, натыйжаны билдирет. Ишеним катасы чынжырды алмашууда берилген сертификаттардан бүтүрүү мүмкүн болбогонун билдирет; идентификация катасы чынжыр текшерилгенин, бирок ат дал келбегенин билдирет; алгоритм катасы түзмөк же профиль ачкыч түрүн же кол тамганы кабыл албай турганын билдирет.
| 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 орнотуусунда swanctl --list-certs менен, же эски starter менен ipsec listcerts менен демондун эмне кармап турганын текшериңиз. Аралык сертификат үстүндө тамыры бар CA сертификаты катары көрүнүшү керек. Эгер ал жок болсо, эч кандай клиент опциясы жардам бербейт; эгер бар болсо, кийинки суроого өтүңүз.
Анан ал жөнөтүлөбү текшериңиз. swanctl.conf шилтемеси send_cert жазат, анын демейки ifasked сертификаттарды пир сураганда гана жөнөтөт; always болбосо да жөнөтөт. Эски баламасы ipsec.conf ичиндеги leftsendcert=always. Бул жөндөө жөнөтүүнү көзөмөлдөйт, жеткиликтүүлүктү эмес, ошондуктан демон эч качан жүктөбөгөн аралык сертификаттын ордун толтура албайт.
Чынжыр кыска болсо, аралык сертификатты демон издеген жерге жүктөңүз
Аралык сертификатты жалбырактын жанына эмес, CA каталогуна коюңуз: ipsec.conf орнотуусу үчүн /etc/ipsec.d/cacerts, swanctl үчүн /etc/swanctl/x509ca же пакетиңиз алмаштырган жол. Конфигурацияны кайра жүктөп, сертификаттарды кайра тизмектеңиз. Айрым версиялар чынжырды жалбырак файлынын ичине камтыган топтомду да жөнөтөт, бирок CA каталогу версиялар жана пакеттер боюнча көчмө чечим.
Клиент тараптан да текшериңиз. Телефон алмашуу алып келген нерсени гана көрөт, ошондуктан лог деңгээли 2деги демон журналы жөнөтүлгөн сертификаттардын ичинде аралык сертификатты көрсөтүшү керек. Журнал аны көрсөтсө да телефон иштебей жатса, сиз таблицанын башка сабындасыз, жана CA файлдарын оңдоп улантуу натыйжаны өзгөртпөйт.
Чынжыр толук болсо, сертификаттарды оңдоону токтотуңуз
Идентификация катасы — VPN профилиндеги ат менен сертификаттагы аттын дал келбестиги. Android сиз конфигурациялаган сервер идентификациясын текшерген сертификат менен салыштырат, ошондуктан сертификат хост атын атаганда даректи көрсөткөн профиль, же сертификат камтыбаган хост атын атаган профиль ийгиликтүү чынжыр текшерүүсүнөн кийин иштебейт. Кандай тарап туура эмес болсо, ошону оңдоңуз жана кайсы бири өзгөрсө да профиль менен сертификатты шайкеш кармаңыз.
Алгоритм катасы жарактуу чынжыр жана дал келген ат менен пайда болот. Android версиялары кайсы ачкыч түрлөрүн жана кол тамга схемаларын кабыл алары боюнча айырмаланат, жана профиль түрү өзү опцияларды чектейт. Шлюз эски же кыязыраак айкалышты колдонсо, сертификат бузулган деп болжогонго чейин түзмөк колдогон нерсе менен салыштырыңыз. Демон журналы ишеним учурундагыдан алысыраак өткөн handshake көрсөтөт, бул чынжыр эми көйгөй эмес деген белги.
Аралык сертификатты телефондо колдонуучу тамыры катары орнотпоңуз
Жетишпеген аралык сертификатты телефонго колдонуучу сертификаты катары орнотуу эскертүүнү жок кылат жана колдонуучу орноткон тамырларды кабыл алган ар бир колдонмо үчүн телефондун ишеним моделинин өзгөртөт. Ал ошондой эле кийинки клиентке тийе турган жеткирүү катасын жашырат жана шлюздун бардык келечектеги түзмөктөргө толук эмес чынжыр жөнөтүшүнө алып келет. Туруктуу оңдоо серверде, бир жолу, бардык клиенттер үчүн.
Өзгөртүү жазуусунда үч чечимди өзүнчө кармаңыз: кайсы сертификаттар жөнөтүлдү, кайсы идентификация салыштырылды жана кайсы алгоритм сүйлөшүлдү. Ар дайым толук чынжырын жөнөткөн шлюз, сертификатты туура атаган профиль жана флот колдогон ачкыч түрү — бул үч кичинекей факт жана бул катанын баары ушунда.