Go-käännös, Composer-asennus ja Python-asiakas toimivat kaikki kotona ja kaikki epäonnistuvat yrityksen VPN:n sisällä. Tämä kuvio kertoo polusta, ei sovelluksesta. Jokin tunnelissa muutti sertifikaattiketjun, jonka prosessisi näkee, tai nollasi kättelyn ennen kuin ketjua edes saapui. Kaksi vikaa näyttävät päätteessä samanlaisilta ja vaativat täysin erilaiset vastaukset.

Kolme viestiä, kolme mekanismia

Virhe x509 certificate signed by unknown authority tarkoittaa, että ketju rakennettiin ja sen juuri puuttuu siitä luottamussäilöstä, jota kyseinen prosessi käyttää. Virhe self-signed certificate in certificate chain tarkoittaa yleensä, että tarkastusvälityspalvelin vastasi omalla sertifikaatillaan, ja se on ketju, jota ajonaikainen ympäristösi ei tunne. SSL EOF kättelyn aikana tarkoittaa, että yhteys suljettiin ennen kuin yhtään käyttökelpoista sertifikaattia lähetettiin, ja se on välilaite, joka hylkää ClientHellon, ei lainkaan luottamusongelma.

Turvattoman tilan valitsimen lisääminen saa kaikki kolme viestiä katoamaan samalla kun sieppaus jää paikoilleen, ja se poistaa tarkistuksen, joka nappaisi todellisen hyökkääjän.

Etsi nippu, jota prosessi todella lukee

Windowsin säilöön asennettu yritysjuuri korjaa selaimet ja .NET-sovellukset, jotka kysyvät järjestelmäsäilöä. Se ei tee mitään kontin sisällä toimivalle käännökselle, joka kantaa oman CA-nippunsa, eikä Python-prosessille, joka käyttää certifiä, tai Node-prosessille, joka käyttää mukana tulevaa listaansa. Go lukee sen ympäristön järjestelmävarannon, jossa binaari toimii, eli kontin, ei kannettavan. Yksi kone tuottaa siis samaan aikaan toimivan selaimen ja epäonnistuvan käännöstyökalun.

Kysy työkalulta sen sijaan että oletat. python3 -c "import ssl; print(ssl.get_default_verify_paths())" tulostaa tiedostot, joita Python kysyy, ja node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" näyttää, onko ohitus jo asetettu. Kontin osalta aja sama tarkistus kuvan sisällä, koska se on ympäristö, jota käännös todella käyttää.

Asenna yksi juuri sinne, missä käännös toimii

Hanki tarkastusjuuri IT:ltä PEM-tiedostona ja varmista sen sormenjälki erillisen kanavan kautta ennen kuin luotat siihen. Debian-pohjaisissa kuvissa kopioi se hakemistoon /usr/local/share/ca-certificates/ ja aja update-ca-certificates; RHEL-perheen kuvat käyttävät update-ca-trust-komentoa sen jälkeen, kun tiedosto on pudotettu hakemistoon /etc/pki/ca-trust/source/anchors/. Lisää konttikäännöksessä nämä vaiheet ennen epäonnistuvaa komentoa, jotta kerros välimuistitetaan riippuvuuksien asennuksen yläpuolelle.

Paikallista devcontaineria varten liitä PEM-tiedosto ja aja sama päivityskomento käynnistyksessä sen sijaan että paistaisit sen henkilökohtaiseen kuvaan, jota kukaan muu ei voi toistaa. Työkalut, jotka tuovat oman nippunsa, tarvitsevat oman dokumentoidun ohituksensa: pipillä on sertifikaattiasetus, npm:llä on cafile-asetus, ja useimmat muut hyväksyvät tavalliset ympäristömuuttujat.

Tämä ei ole sama asia kuin minkä tahansa sertifikaatin hyväksyminen. Lisäät yhden tietyn juuren, jonka olet saanut tarkastuksen tekevältä osapuolelta, yhteen ympäristöön, ja varmennus pysyy päällä kaikille muille ketjuille. Kirjaa, mikä tiedosto lisättiin ja milloin se vanhenee, koska tarkastusjuuri uusitaan kuin mikä tahansa CA.

Kun kättely kuolee ennen sertifikaattia

Jos mitään ei esitetä, mikään luottamussäilön muutos ei auta. Vertaa samaa pyyntöä tunnelin ollessa päällä ja pois, ja tarkastele ketjua sitten suoraan komennolla openssl s_client -connect host:443 -servername host -showcerts. Yhteys, joka onnistuu VPN:n ulkopuolella ja nollautuu sen sisällä, on välilaitteen politiikkapäätös, ja lääke on poikkeus kyseiselle isännälle, ei toinen sertifikaatti. Pyydä, että pakettirekisteri tai API-päätepiste päästetään läpi muuttamattomana.

Tunnelin jakaminen niin, että työkalu ohittaa VPN:n, välttää kyseisen liikenteen tarkastuksen, mikä voi rikkoa käytäntöä eikä tee työkalusta luotettavaa.

Kirjaa tulos jokaisen työkalun osalta

Lyhyt muistiinpano, johon on listattu binaari, sen lukema luottamustiedosto, pelissä oleva ympäristömuuttuja ja hyväksytty poikkeus, säästää seuraavalta henkilöltä koko diagnoosin. Pidä muistiinpano työkalukohtaisena eikä kannettavakohtaisena, koska kannettava on harvoin se, mikä muuttui.

Ja pidä kaksi lausetta erillään tiketissä: asensimme tietyn yritysjuuren, ja kytkimme varmennuksen pois. Vain toinen niistä on tukitoimi.

Aiheeseen liittyvät artikkelit