Зашто OpenConnect одбија пролаз након замене сертификата?
Неуспех провере након замене сертификата пролаза је одлука о поверењу, а не покварен тунел. Изаберите између CA која издаје и причвршћивања једног кључа.
Пролази мењају сертификате, а клијент који се јуче повезивао почиње да се зауставља на првој TLS размени. Порука наводи разлог провере, а не мрежни квар, и сама машина није промењена, што је корисни траг. Покварио се однос између сертификата који се сада представља и корена које је клијент спреман да узме у обзир. Поправити то је одлука о поверењу, зато је донесите пре него што упишете опцију.
Прочитајте неуспех пре него што промените било које подешавање поверења
Грешка типа недостајући потписник значи да ланац завршава на нечему што клијент не прихвата. То може бити обновљени сертификат интерне установе, замена од јавне установе или уређај у средини који представља сопствени сертификат. Само формулација не може да разликује те случајеве, зато погледајте издаваоца пре него што одлучите.
Покрените везу једном у првом плану и пустите је да не успе, јер интерактивни излаз носи име сервера, ланац издаваоца и отисак који је клијент израчунао. Упоредите тог издаваоца са установом коју ваша организација заиста води. Ако се отисак променио, а издавалац није, третирајте то као сумњиво док се обнова не потврди каналом коме већ верујете. Погађање у овом тренутку је пут којим човек на крају причврсти кључ пресретача.
Запишите верзију клијента у исту белешку. Велики део неуспеха који изгледају као проблеми са поверењем долази од старијег клијента који наилази на новију размену пролаза.
Изаберите између поверења у издаваоца и причвршћивања једног кључа
Обе опције чине везу успешном. Касније се ломе на супротне начине, зато избор припада неуспеху који можете да поднесете.
| Approach | Good fit | What breaks it |
|---|---|---|
Trust the issuing CA with --cafile | Internal PKI you can obtain over an already trusted channel | CA rotation, or a client that still falls back to public roots |
Pin one key with --servercert | No CA relationship, or exactly one key should ever be accepted | Any reissue that generates a new key pair |
Посегните за CA датотеком када сертификат долази од установе коју можете независно да проверите, јер обнове тада настављају да раде без дирања аргумената клијента. Упарите је са прекидачем који искључује системске корене, иначе јавна установа може да задовољи проверу у ваше име. Уместо тога причврстите када пролаз нема CA који можете да прибавите или када је циљ најужнији могући изузетак. Ниједан пут није сигурнији у апстрактном смислу: CA се скалира кроз обнове, причвршћивање је лакше прегледати.
Који год да изаберете, поуздана вредност мора да стигне каналом коме се веровало пре промене. Администратор, конзолна сесија на пролазу или унапред узета копија — сви су прихватљиви. Копирање било ког отиска који упит прикаже је згодно и тачно је оно чему се пресретач нада.
Ставите вредност у команду коју заиста покрећете
Причвршћивање путује у опцији серверског сертификата, а њен префикс одлучује о кодирању: хексадецимални сажеци јавног кључа под sha1 или sha256, и base64 причвршћивање кључа под pin-sha256. Његово навођење такође искључује системско поверење за то извршавање, тако да причвршћени кључ постаје цела одлука.
sudo openconnect --protocol=gp vpn.example.com --user alice \
--servercert pin-sha256:AbCdEf... # single key pin
sudo openconnect vpn.example.com --cafile /etc/ssl/internal-ca.pem --no-system-trust
Клијент пореди скраћени сажетак, прихватајући само четири знака после префикса, што је замка, а не погодност. Скраћена вредност пролази локално и даље не идентификује пролаз који сте наменили. Копирајте цео низ који је клијент одштампао при првом покушају, уместо да га прекуцате из поруке. Затим преместите готову опцију у омотач скрипту, unit датотеку или профил који покреће везу, да одлука о поверењу буде прегледна, а касније измене намерне.
Десктоп покретачи и додатак NetworkManager чувају сопствену копију аргумената везе. Скрипта уређена на диску не стиже до профила увезеног раније, тако да сачувана вредност наставља да побеђује.
Позбавите се промене без закључавања себе напољу
Опција може да се да више од једном, тако да планирана промена може да прихвати одлазећи и долазећи кључ заједно. Додајте ново причвршћивање пре него што се пролаз пребаци, држите оба наведена док се сесије пресељавају, и уклоните пензионисано када стари кључ нестане. Тај прозор треба власника, јер заборављено двоструко причвршћивање оставља кључ поузданим без икога да га надгледа. Поновна изградња која ствара нови пар кључева ломи чисто причвршћивање, а опоравак је исти поступак у супротном смеру.
Напишите датум промене поред причвршћивања. Причвршћивање без датума прегледа је будући прекид са збуњујућом поруком о грешци.
Искључите верзију клијента пре него што уредите поверење
Застарео клијент може да не успе док парсира одговор за аутентификацију који је пролаз од тада изменио, а површинска порука и даље говори о вези, а не о парсеру. Упоредите инсталирану верзију са оним што пролаз документује, и тестирајте тренутни пакет у једнократном профилу пре него што промените било које подешавање поверења.
openconnect --version
После поправке проверите две ствари, а не једну: портал се учитава кроз тунел, и обична интерна адреса одговара. Завршено руковање доказује само да је одлука о поверењу прихваћена.