Go билд, Composer инсталација и Python клијент раде код куће и сви падају унутар корпоративне VPN мреже. Тај образац говори о путу, а не о апликацији. Нешто на тунелу променило је ланац сертификата који ваш процес види или је ресетовало руковање пре него што је ланац уопште стигао. Две грешке у терминалу изгледају слично и траже сасвим различите реакције.

Три поруке, три механизма

Грешка x509 certificate signed by unknown authority значи да је ланац изграђен и да његов корен недостаје у складишту поверења које тај процес користи. Грешка self-signed certificate in certificate chain обично значи да је инспекцијски прокси одговорио сопственим сертификатом, а то је ланац који ваше окружење не препознаје. SSL EOF током руковања значи да је веза затворена пре него што је послат иједан употребљив сертификат, и то је посреднички уређај који одбија ClientHello, а не проблем са поверењем уопште.

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

Пронађите пакет који процес заиста чита

Корпоративни корен инсталиран у Windows складишту поправља прегледаче и .NET апликације које прегледају системско складиште. Не чини ништа за билд који се изводи у контејнеру, који носи сопствени CA пакет, нити за Python процес који користи certifi или Node процес који користи своју уграђену листу. Go чита системски скуп окружења у којем бинарни фајл ради, дакле контејнер, а не лаптоп. Зато један рачунар истовремено даје исправан прегледач и неисправан алат за билд.

Питајте алат уместо да претпостављате. python3 -c "import ssl; print(ssl.get_default_verify_paths())" исписује фајлове које ће Python прегледати, а node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" показује да ли је неко надјачавање већ постављено. За контејнер покрените исту проверу унутар слике, јер је то окружење које билд заиста користи.

Инсталирајте један корен тамо где билд ради

Набавите инспекцијски корен од ИТ-а као PEM фајл и проверите његов отисак кроз одвојени канал пре него што му верујете. На сликама заснованим на Debian-у копирајте га у /usr/local/share/ca-certificates/ и покрените update-ca-certificates; слике из фамилије RHEL користе update-ca-trust након што фајл сместе у /etc/pki/ca-trust/source/anchors/. У контејнерском билду додајте те кораке пре наредбе која пада, да би се слој кеширао изнад инсталације зависности.

За локални devcontainer монтирајте PEM и покрените исту наредбу за ажурирање при покретању, уместо да је запечатите у личну слику коју нико други не може да репродукује. Алати који носе сопствени пакет требају сопствено документовано надјачавање: pip има поставку за сертификат, npm има поставку cafile, а већина осталих прихвата стандардне променљиве окружења.

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

Када руковање умре пре сертификата

Ако се ништа не представи, никаква промена складишта поверења неће помоћи. Упоредите исти захтев са укљученим и искљученим тунелом, па прегледајте ланац директно помоћу openssl s_client -connect host:443 -servername host -showcerts. Веза која се заврши изван VPN-а и ресетује унутар њега је политичка одлука посредничког уређаја, а лек је изузетак за тог хоста, а не још један сертификат. Затражите да се регистар пакета или API крајња тачка пропусте без измена.

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

Запишите исход за сваки алат

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

И држите две реченице одвојено у тикету: инсталирали смо одређени корпоративни корен и искључили смо проверу. Само је једна од тога радња подршке.

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