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 нұсқалары қабылдайтын кілт түрлері мен қолтаңба схемалары бойынша ерекшеленеді, және профиль түрінің өзі мүмкіндіктерді шектейді. Қақпа ескі немесе сирек үйлесімді қолданса, сертификатты бүлінген деп есептемес бұрын құрылғы қолдайтынмен салыстырыңыз. Журнал қол алысудың сенім жағдайынан әрі жүргенін көрсетеді, бұл шынжыр енді мәселе еместігінің белгісі.
Аралықты телефонда пайдаланушы тамыры ретінде орнатпаңыз
Жоқ аралықты телефонда пайдаланушы сертификаты ретінде орнату ескертуді жояды және пайдаланушы орнатқан тамырларды қабылдайтын әр қолданба үшін телефонның сенім үлгісін өзгертеді. Ол келесі клиентке тиетін жеткізу ақауын да жасырады және қақпаны болашақтағы әр құрылғыға толық емес шынжыр жіберуге қалдырады. Тұрақты түзету серверде, бір рет, барлық клиенттер үшін.
Өзгеріс журналында үш шешімді бөлек ұстаңыз: қандай сертификаттар берілді, қандай сәйкестік салыстырылды және қандай алгоритм келісілді. Әрқашан толық шынжырын жіберетін қақпа, сертификатты дұрыс атайтын профиль және флот қолдайтын кілт түрі — үш кішкене факт, және бұл бүкіл ақау.