OpenConnect-ке токен үшін қай PKCS#11 URI қажет?
OpenConnect токеннің сертификаты мен кілтін атайтын PKCS#11 URI қалайды, экспортталған PEM емес. Тіркелымге сәйкес нысанды тауып, тырнақшаға алыңыз.
Дұрыс кілті бар смарт-картаға да оның қай нысанын пайдалану керектігін айту қажет. OpenConnect мұндай жағдайда көшірілген .key файлын қаламайды; ол сертификатты атайтын PKCS#11 URI-ды, ал автоматты іздеу жұмысты бітіре алмағанда, қасындағы жеке кілтті қалайды. Қиын жері — синтаксистік тұрғыдан жарамды URI ештеңені дәлелдемейді. Ол шлюз әлдеқашан сенетін тіркелымді атауы керек, тек карта ашуға дайын нысанды ғана емес.
Клиент экспортталған кілттің орнына не қалайды
-c параметрі әдетте файл жолын қабылдайды, бірақ мән PKCS#11 URI ретінде талданса, OpenConnect оны дискідегі файлға емес, токен ішіндегі нысанға сілтеме деп қарайды. -k параметрі жеке кілт үшін де солай әрекет етеді. Ештеңе экспортталмайды және кілт карта беретін қорғанысты ешқашан тастамайды. Клиент сізден токен модулі, сертификат қоймасы және шлюз тіркелымы келісетін атауды қалайды.
Көптеген әрекет осы соңғы шектеуде тұрып қалады. URI мүлдем дұрыс құрылған болса да, шлюз қабылдамайтын сертификатты таңдауы мүмкін, өйткені жарамдылық пен сәйкестік бөлек сұрақтар. Жасауға тұрарлық тексеру — тіркелым жазбасымен салыстыру, кездейсоқ ашылатын бірінші нысанды іздеу емес.
Екі URI, екі түрлі жұмыс
Сертификаттың URI-ы қандай тұлғаны мәлімдеп жатқаныңызға жауап береді. Ол ашық кілті мен субъект жолы VPN әкімшісі берген тіркелгі немесе құрылғы профиліне сәйкес келетін сертификат нысанын көрсетеді. Сол сертификат әдетте қасында сақталған жеке кілт нысанымен бірге келеді және TLS қол алысуына нақты осы жұп қажет.
Кілттің URI-ы OpenConnect оны болжай алмаған кезде сәйкес жеке материалдың қайда екеніне жауап береді. Тек -c орнатылғанда клиент сертификат қасиеттерінен кілт іздеуін құрады; -k беру болжамды нақты нысан сілтемесімен алмастырады. Токеннің PIN-і үшінші, байланысы жоқ кіріс: ол әрекет үшін картаны ашады және ешқашан нысанды сәйкестендірмейді.
openconnect --protocol=anyconnect \
-c 'pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=1a2b3c4d;id=%01' \
vpn.example.net
Ол тырнақшаға алынған жолдың бәрі дерек. Нүктелі үтірлер URI атрибуттарын бөледі, пайыздық экрандау талдауды бұзатын таңбаларды кодтайды, сондықтан бүкіл аргумент қабықтан бүлінбей өтуі керек.
Тіркелымыңызға сәйкес URI-ды табу
GnuTLS p11tool құралын береді, ол ағымдағы пайдаланушының p11-kit арқылы нақты неге қол жеткізетінін тізеді. p11tool --list-tokens-тан бастап, содан кейін өзіңізге керек токендегі сертификат нысандарын тізіңіз. Нысандар тек PIN-нен кейін көрінсе --login қосыңыз және бірінші көрінгенді таңдаудың орнына субъект пен эмитентті тіркелым жазбасымен салыстырыңыз.
Егер токен мүлдем көрінбесе, мәселе OpenConnect-тен төменде: p11-kit-те сол аралық бағдарлама үшін тіркелген модуль жоқ, немесе модуль басқа тіркелгі үшін тіркелген. Жүйелік деңгейдегі тіркеу /etc/pkcs11/modules астында, ал пайдаланушыға арналған қалта жүйе көшірмесіне тимей-ақ сол нәрсені ұстай алады. Модуль файлындағы жеткізуші жолы оқырман бағдарламасы нақты орнатқан кітапханаға сілтейтінін тексеріңіз.
URI-ды тізімнен көшіргенде оның айналасындағы тырнақшаларды сақтаңыз. Тырнақшасыз нүктелі үтірлер аргументті бірінші атрибутта кесіп тастайды да, клиент таба алмайтын нысан туралы хабарлайды.
Автоматты кілт іздеуі бас тартқанда
OpenConnect сертификат URI-ынан кілт іздеуін шығара алады, бірақ оның жасайтын дәл сәйкестендіруі нұсқаға тәуелді, ал нысан түрі мен белгісін өңдеу уақыт өте өзгерген. URI-ды жұмыс істегенше қысқарту керек деген кеңес ескі айналма жолды сипаттайды, талапты емес. Шығарылған іздеу сәтсіз болса, сертификат URI-ын бұлыңғыр нәрсеге айналдырудың орнына кілтті -k арқылы анық атаңыз.
Клиентті кінәламас бұрын кілттің бар екенін және p11tool --list-keys арқылы көрінетінін растаңыз. Содан кейін нысанның қолтаңба немесе шифрды шешу үшін жарамды деп белгіленгенін тексеріңіз, өйткені қате атрибуттармен жасалған кілт URI қаншалықты дұрыс болса да қол алысуды аяқтай алмайды. OpenVPN профиліндегі сериалданған pkcs11-id мәнін OpenConnect параметріне көшірмеңіз; екі клиент бір картамен сөйлескенімен, әртүрлі сәйкестендіргіш форматтарын пайдаланады.
Егер URI шешіліп, PIN қабылданса да аутентификация әлі сәтсіз болса, URI-ды реттеуді тоқтатыңыз. Шлюздің өз қатесін оқыңыз, өйткені келесі сәтсіздік токеннен жоғары.
Тек URI мәселелеріне ұқсайтын сәтсіздіктер
Басқа протоколда сөйлейтін шлюз URI-ыңыз дұрыс па, қате ме — бәрібір бірдей сәтсіз болады. OpenConnect ескі vpnc клиентін белгілі себеппен алмастырды, ал карта қолдауы үйлесімсіз шлюз протоколын үйлесімді етпейді. Нысан атрибуттарына тағы бір сағат жұмсамас бұрын сервердің күтілетін протоколы мен аутентификация құрылымын растаңыз.
Сервер тұлғасын тексеру де жеке қабат. Клиент шлюз сертификатын өз сенім қоймасымен тексереді және бұл тексеру карта өз бөлігін орындап болған соң жүреді. Оқырман рұқсаттары мен тоқтаған pcscd қызметі бірдей сыртқы симптом береді, оқылмайтын токен, бірақ түзету әлдеқайда қарапайым.
Нысаннан сыртқа қарай жұмыс істеңіз: p11tool токенді көре ме, сертификат пен кілтті көре ме, OpenConnect URI-ды қабылдай ма, содан кейін ғана шлюз тұлғаны қабылдай ма деп сұраңыз. Әр қадамның өз қате хабарламасы бар және әрқайсысын тексеру келесісінен арзан.