Go būvēšana, Composer instalēšana un Python klients mājās visi strādā, bet uzņēmuma VPN iekšienē visi cieš neveiksmi. Šis modelis stāsta par ceļu, nevis par lietojumprogrammu. Kaut kas tunelī mainīja sertifikātu ķēdi, ko redz jūsu process, vai atiestatīja rokas spiedienu, pirms ķēde vispār ieradās. Abas kļūdas terminālī izskatās līdzīgi un prasa pilnīgi atšķirīgas reakcijas.

Trīs ziņojumi, trīs mehānismi

Kļūda x509 certificate signed by unknown authority nozīmē, ka ķēde tika uzbūvēta un tās sakne trūkst tajā uzticības krātuvē, ko izmanto šis process. Kļūda self-signed certificate in certificate chain parasti nozīmē, ka pārbaudes starpprogramma atbildēja ar savu sertifikātu, un tā ir ķēde, ko jūsu izpildlaika vide neatpazīst. SSL EOF rokas spiediena laikā nozīmē, ka savienojums tika aizvērts, pirms tika nosūtīts kāds lietojams sertifikāts, un tas ir starpmehānisms, kas noraida ClientHello, nevis vispār uzticības problēma.

Nedroša režīma karodziņa pievienošana liek visiem trim ziņojumiem pazust, kamēr pārtveršana paliek vietā, un tā noņem pārbaudi, kas noķertu īstu uzbrucēju.

Atrodiet pakotni, ko process patiešām lasa

Windows krātuvē instalētā uzņēmuma sakne salabo pārlūkus un .NET programmas, kas konsultējas ar sistēmas krātuvi. Tā neko nedara būvēšanai, kas darbojas konteinera iekšienē un nes savu CA pakotni, un neko Python procesam ar certifi vai Node procesam ar tā iekļauto sarakstu. Go lasa tās vides sistēmas kopumu, kurā darbojas binārais fails, tas ir, konteineru, nevis portatīvo datoru. Tāpēc viena mašīna vienlaikus dod strādājošu pārlūku un neveiksmīgu būvēšanas rīku.

Jautājiet rīkam, nevis pieņemiet. python3 -c "import ssl; print(ssl.get_default_verify_paths())" izdrukā failus, ar kuriem Python konsultēsies, un node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" parāda, vai pārrakstīšana jau ir iestatīta. Konteineram palaidiet to pašu pārbaudi attēla iekšienē, jo tā ir vide, ko būvēšana patiešām izmanto.

Instalējiet vienu sakni tur, kur darbojas būvēšana

Saņemiet pārbaudes sakni no IT kā PEM failu un pirms uzticēšanās pārbaudiet tās pirksta nospiedumu atsevišķā kanālā. Debian bāzētos attēlos nokopējiet to uz /usr/local/share/ca-certificates/ un palaidiet update-ca-certificates; RHEL saimes attēli izmanto update-ca-trust pēc tam, kad fails ir ievietots /etc/pki/ca-trust/source/anchors/. Konteinera būvēšanā pievienojiet šos soļus pirms neveiksmīgās komandas, lai slānis tiktu kešots virs atkarību instalēšanas.

Vietējam devcontainer pievienojiet PEM un palaidiet to pašu atjaunināšanas komandu startēšanas laikā, nevis iecepiet to personīgā attēlā, ko neviens cits nevar reproducēt. Rīkiem, kas nes savu pakotni, vajadzīga sava dokumentētā pārrakstīšana: pip ir sertifikāta iestatījums, npm ir cafile iestatījums, un vairums pārējo pieņem standarta vides mainīgos.

Tas nav tas pats, kas pieņemt jebkuru sertifikātu. Jūs pievienojat vienu konkrētu sakni, kas iegūta no puses, kura veic pārbaudi, vienai videi, un pārbaude paliek ieslēgta katrai citai ķēdei. Pierakstiet, kurš fails tika pievienots un kad tas beidzas, jo pārbaudes sakne tiek atjaunota kā jebkura cita CA.

Kad rokas spiediens mirst pirms sertifikāta

Ja nekas netiek uzrādīts, nekāda uzticības krātuves maiņa nepalīdzēs. Salīdziniet to pašu pieprasījumu ar tuneli ieslēgtu un izslēgtu, pēc tam pārbaudiet ķēdi tieši ar openssl s_client -connect host:443 -servername host -showcerts. Savienojums, kas pabeidzas ārpus VPN un tiek atiestatīts tā iekšienē, ir starpmehānisma politikas lēmums, un zāles ir izņēmums šim resursdatoram, nevis vēl viens sertifikāts. Lūdziet, lai pakotņu reģistrs vai API galapunkts tiktu laists cauri nemainīts.

Tuneļa sadalīšana, lai rīks apietu VPN, izvairās no šīs plūsmas pārbaudes, kas var pārkāpt politiku un nepadara rīku uzticamu.

Pierakstiet rezultātu katram rīkam

Īsa piezīme, kurā uzskaitīts binārais fails, tā lasītais uzticības fails, spēlē esošais vides mainīgais un apstiprinātais izņēmums, ietaupa nākamajam cilvēkam visu diagnostiku. Turiet piezīmi pa rīkiem, nevis pa portatīvajiem datoriem, jo portatīvais dators reti ir tas, kas mainījās.

Un turiet divus teikumus atsevišķi pieteikumā: mēs instalējām konkrētu uzņēmuma sakni, un mēs izslēdzām pārbaudi. Tikai viens no tiem ir atbalsta darbība.

Saistītie raksti