Исто име датотеке ca.crt, други сертификат: шта упоредити
Два профила могу донети ca.crt са различитим садржајем. Забележите отисак онога што процес учитава, затим проверите да ли је то предвиђено сидро поверења.
Два профила оба доносе датотеку названу ca.crt, један тунел се подиже, а други пада са грешком у ланцу. Отварање две датотеке једну уз другу ретко то решава, а искључивање провере решава то у погрешном смеру. Питање које грешка заправо поставља уже је: који сертификат сваки процес учитава као своје сидро поверења и да ли су то два иста објекта? Одговорите прво на то и остатак дијагностике добија смер. Назив датотеке је ознака паковања, а путања записана у профилу такође није меродавна, па све зависи од тога шта процес стварно чита.
Пронађите сертификат који клијент стварно учитава
OpenVPN прихвата установу у два облика, а облик одлучује који су бајтови важни. Профил може показивати на спољашњу датотеку са ca или уградити сертификат у блок <ca> у самом профилу. Кад постоје оба, побеђује уграђени блок и датотека поред профила се никада не отвара.
Прочитајте неуспели профил и откријте који облик користи пре него што било шта упоредите. Копија извучена из суседног директоријума или из пакета из којег је дошао други профил не говори вам ништа о томе чему овај процес верује. Исто важи и за путању у конфигурацији: разрешава се релативно према месту где је клијент покренут, а то није увек директоријум који гледате. Читајте профил, не фасциклу.
Сертификати се идентификују по свом садржају: јавни кључ, субјекат и издавалац, период важности и потпис преко свега тога. Две датотеке с идентичним бајтовима исти су сертификат како год се звале, а две датотеке с истим називом могу бити неповезане установе. Назив је ознака паковања, не идентитет.
Забележите отисак обе копије помоћу openssl
Отисак је хеш преко DER кодирања сертификата, облика који потпис покрива, па завршеци редова и текст заглавља не могу на њега утицати. Израчунајте га за сваку датотеку и имате два хексадецимална низа одвојена двотачком који се или подударају или не. Ништа друго у сертификату не треба читати да би се одговорило на питање поређења.
openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256
Примамљиво је усмерити openssl на сам профил, али он чита први блок сертификата који се појави у датотеци, а профил обично носи <cert> пре <ca>. Извуците блок установе, затим забележите отисак извучене датотеке, јер то је копија коју ће клијент стварно употребити.
sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256
Идентични отисци значе да је материјал поверења исти и да грешка у ланцу има неки други узрок, што је друга истрага. Различити отисци значе различите сертификате и ту почиње следеће поглавље.
Прочитајте неподударност пре него што претпоставите напад
Различити отисци значе различите сертификате и ништа више. Поновно издавање, ротација, преименована установа или застарели пакет сви стварају различите датотеке с потпуно легитимним историјама. Која припада распоређивању питање је за оператера или евиденцију распоређивања, а не за време измене датотеке. Архиве копирају временске ознаке, па новија датотека није аутоматски исправно сидро.
Корен који сам себе потписује нормалан је, па проналазак једног није доказ проблема. Задатак је проверавача да изгради пут од сертификата сервера до сидра које му је предато, а грешка у ланцу обично значи да тај пут није могао бити довршен.
Проверите да ли је сидро неуспелог профила установа из које распоређивање још увек издаје. Ако се отисак не подудара ни с чим у евиденцији распоређивања, профил је једноставно застарео и никакво подешавање на страни клијента то неће поправити.
Обновите поверење без искључивања провере
Краткорочно решење је искључити проверу или додати сваки сертификат у ланцу као сидро. Обоје чини да порука нестане и обоје мења које ће сервере клијент од тада прихватати. Поново укључите проверу, инсталирајте жељено сидро и поново тестирајте.
Ако се ланац сада изгради, али се појави друга грешка, то је напредак: провера назива, датуми важности и опозив одвојене су провере с одвојеним порукама. Држите пар отисака и изворни текст грешке заједно у тикету, како би следећа особа видела које је сидро учитано и које се очекивало. Пар отисака довољно је мален да се залепи у напомену о примопредаји, а следећи случај тада траје пет минута уместо поподнева.
Набавите исправну установу истим аутентификованим каналом који је доставио профил. Извлачење сертификата са сервера јер његов субјекат изгледа познато други је чин и тихо проширује оно чему ће клијент веровати.