Опозив никада не улази у тунел који ради да би избрисао сесију. Листа је улаз у проверу сертификата и чита се током размене контролног канала којом почиње TLS сесија. Та једна чињеница објашњава оба изненађења: опозвани клијент се поново повезује јер листа никада није стигла до проверавача, а постојећа сесија преживљава јер нико ништа није поново проверио.

Листа је улаз, а не радња

Током успостављања сесије сервер проверава клијентски сертификат према својим сидрима поверења, а директива опозива додаје том поступку претрагу листе. Провера се дешава на серверу, па клијент не може да види да му је сертификат опозван и наставља да нуди исти. Профил који се и даље повезује тиме доказује само да је неки проверавач прихватио ланац, а не да је опозив заказао.

Сама листа је потписани објекат са датумом издавања и датумом следећег ажурирања. Неповезана листа, листа коју је потписало друго тело или она чији је датум следећег ажурирања прошао није замена за тренутну, а од примене зависи да ли се застарела листа одбија или тихо прихвата.

Нова веза наспрам сесије у раду

Опозив се оцењује када се сесија успоставља или поново преговара, а не према податковном каналу на сваком пакету. Клијент који је већ повезан држи кључеве саобраћаја, па наставља да пропушта пакете након што се његов сертификат појави на листи. Подразумевани интервал поновног преговарања мери се сатима, па ажурирана листа може ступити на снагу за нове, док тунел у раду остаје.

SituationWhat the list doesWhen it applies
Fresh connectionBlocks the handshakeAt verification, immediately
RenegotiationBlocks the new exchangeAt the next renegotiation interval
Established data channelNothingUntil the session ends

Тренутно спровођење захтева намерну радњу, а не само листу. Рестартовање услуге присиљава сваког клијента да се поново повеже, док прекидање једне сесије кроз управљачко сучеље оставља остале нетакнутим. Изаберите једно по инциденту и забележите које сте употребили. Две опције имају различит обухват и то је права одлука.

Доставите датотеку коју проверавач заиста чита

Листа мора да се генерише из евиденције тела и затим копира на сваку машину која проверава сертификате. Генерисати је на CA хосту и никада је не инсталирати на серверу најчешћи је квар и изгледа управо као потпуно покварена функција опозива.

ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem

Два детаља одлучују да ли се датотека заиста чита. Релативна путања се разрешава према директоријуму конфигурације, па копија остављена у кућном директоријуму оператера можда никада неће бити пронађена. А демон обично одбаци привилегије након покретања, па рачун у раду треба дозволу претраге у сваком надређеном директоријуму и дозволу читања датотеке. Проверите обоје са рачуном у раду, а не са root, иначе тест доказује погрешну ствар.

На systemd hostовима очврснута јединица може сакрити путању, с приказом само за читање или заштићеним системским директоријумом. Из услуге се то не разликује од датотеке која недостаје, па проверите ограничења јединице пре него што кренете да тражите грешку у дозволама. Прочитајте датотеку јединице пре него што оптужите режим датотеке.

Потврдите на серверу, а не на клијенту

Серверски дневник именује шта се догодило: отварање листе, њено учитавање или неуспех провере са опозваним серијским бројем. Клијент пријављује само општи неуспех руковања, зато су клијентски дневници лоше место за тражење одлуке о опозиву.

Проверите свежим покушајем са опозваног профила и затим станите. Успешна веза са тог профила сигнал је да прегледате путању датотеке и рачун у раду, а не да претпоставите да је листа била погрешна. Задржите тај успешни покушај као пријемни тест и не рачунајте поновно повезивање које нисте гледали.

Шта ништа не опозива

Брисање профила са преносног рачунара, уклањање датотеке сертификата са клијента или казивање кориснику да престане да се повезује не мења ништа на серверу. Сертификат остаје важећи док тело не забележи опозив и проверавач не прочита добијену листу.

Зато је ланац вредан записивања: забележите опозив, генеришите и потпишите листу, расподелите управо ту датотеку и потврдите да је сервисни рачун може читати. Свака алка је кратка и свака која недостаје оставља опозваног клијента да се весело повезује. Контролна листа са четири реда боља је од претпоставке без иједног.

Повезани чланци