Два клиентски сертификати со различни сериски броеви, различни клучеви и дури различни целосни субјекти сепак можат да завршат во иста датотека со политика, бидејќи серверот не гледа ништо од тоа. Тој чита име од сертификатот и ја отвора соодветната датотека со конфигурација на клиентот. Ако двата сертификати го носат истото име, вториот ја наследува политиката на првиот во моментот кога ќе се поврзе.

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

Алатките за сертификати нема да ве предупредат, бидејќи единственоста внатре во X.509 и единственоста на име на политика на OpenVPN се различни барања што ги спроведуваат различни системи.

Серверот бара име, не отпечаток од прст

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

Некои распоредувања намерно го заменуваат мапирањето за автентифицираното корисничко име да го преземе заедничкото име, и тогаш токму корисничкото име мора да биде единствено. Во секој случај, вредноста што ја избира политиката е вредноста што ја резервирате. Одлучете која е пред да издадете нешто; погодувањето по судир чини повеќе од прашањето.

Каде две институции се среќаваат на исто име

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

Сериските броеви не помагаат. X.509 бара серискиот број да биде единствен во опсегот на својот издавач, што е својство на книговодството на таа институција, а не глобалниот идентитет на уредот. Проверката на субјектот е исто така различен тест од проверката на заедничкото име: два сертификати можат да делат CN, но да се разликуваат во организационата единица и затоа да носат различни субјекти. Секое од тие својства може да важи додека серверот сепак ги мапира двата сертификати на едно име на датотека.

Документацијата на OpenSSL CA го опфаќа поставувањето unique_subject што го води мислењето на нејзината сопствена база на податоци, а чесната почетна точка е да ја прочитате вашата конфигурација за издавање наместо да претпоставите дека важи одредено стандардно однесување на EasyRSA или OpenSSL.

Резервирајте го ефективното име пред потпишувањето

Водете регистар што го мапира уредот на неговиот одобрен запис и оттаму на точно име на датотека со политика, така што името се доделува еднаш и останува доделено. Резервацијата мора да биде атомска, што во практика значи ограничување во базата на податоци или заклучување околу чекорот додели-па-потпиши, а не табела што ја уредуваат две лица.

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

Обновувањето намерно го користи името повторно

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

Не посегнувајте по duplicate-cn за да го решите ова. Таа серверска опција управува со истовремени врски што претставуваат исто име; таа не ја заклучува регистрацијата и нејзиното вклучување не прави една споделена статична адреса безбедна за две машини истовремено. Отповикувањето обично го идентификува сертификатот по издавач и сериски број, па повлекувањето на старите акредитиви не мора да го поништи неговиот заменик сѐ додека серверот ги прима и спроведува точните податоци за отповикување.

Потврдете го мапирањето со алатките на машината

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

openssl x509 -in device42.crt -noout -subject -nameopt sep_multiline
ls -l /etc/openvpn/ccd/device42
grep -n "duplicate-cn" /etc/openvpn/server.conf

Првата команда ги печати полињата на субјектот одделно, што веднаш ги прави видливи залутаната организациона единица или удвоеното празно место. Втората потврдува дека датотека со политика постои под точно тоа име, а третата покажува дали серверот е конфигуриран да дозволува неколку сесии на едно име. Извршете ги сите три на нов сертификат пред тој да го напушти чекорот на регистрација, додека грешката сѐ уште чини потпис, а не инцидент. Чувајте го излезот со тикетот за следното лице да види кое име серверот навистина го добил.

Завршете со вистинска врска и споредете ја доделената адреса и турнатите маршрути со датотеката со политика, а не со она што сте имале намера да го напишете. Ако два уреда пријават иста статична адреса, регистарот има судир што ниедна проверка на сертификати нема да го открие.

Поврзани статии