On 30.9.2021 23:32, Miroslav Lachman wrote:
Na jednom starem serveru "na doziti" s FreeBSD 11.2 dnes zacal "fetch" vyhazovat chybu:

Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3 34374359624:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:

Je to intermediate certifikat od Let's Encrypt:  Not After : Sep 30 14:01:15 2021 GMT

vidim, ze se pouzije /usr/local/etc/ssl/cert.pem

V nem je skutecne ten stary certifikat, ktery dnes expiroval:

Trochu jsem se v tom ztratil. Ten cert.pem je na SSL serveru nebo na klientovi ? Fetch je urcite klient a spravne rve, ze certifikat v chainu je expirovany (sel by ale spoustet s parametrem, ze to nema kontrolovat).

Zvlastni je, ze kdyz stejny fetch na stejnou URL pustim na stroji s FreeBSD 12.2, tak tam projde v poradku, pritom je tam stejna verze ca_root_nss.

Klicovy soubor ca_root_nss je /usr/local/share/certs/ca-root-nss.crt

Ten se pri upgrade aktualizuje.

Ano, ca_root_nss take instaluje /usr/local/etc/ssl/cert.pem.sample

Ten se ale do /usr/local/etc/ssl/cert.pem prekopirovava jen pokud ento neexistuje. Pri upgrade tedy ne.

Takze odkud fetch teda bere info o tom, jaky intermediate a root certifikat je validni pro tu URL

Predpokladam, ze fetch nedela nic, ze pouziva sluzbu standardni knihovny - openssl. A ta pouziva standardni postup - klient dostane ze serveru behem SSL handshakingu certifikat a dalsi certifikaty. Dalsi certifikaty muze mit v konfiguraci a dalsi certifikaty si muze stahnout po siti, z URL, ktere nalezne v nekterem z certifikatu, ktere uz ma. Dale dostane (obvykle take z konfigurace) certifikaty, ktere utvori "trusted store".

No a pro kazde spojeni se pokusi slozit retez vedouci od certifikatu serveru pres ony "dalsi" certifikaty k jakemukoliv certifikatu v trusted store.

Pokud takovy retez nalezne pak spojeni je duveryhodne, jinak nikoliv.

Rozdilne verze FreeBSD znamenaji rozdilne verze systemoveho openssl a to muze znamenat odchylky v popsanem algoritmu. Namatkou me napada (neoveroval jsem ale zda se chovani openssl v danem aspektu skutecne mezi verzemi zmenilo):
1. v trusted store mohou/nemusi byt jen korenove certifikaty
2. pri sestavovani chainu se validuje jen prvni sestaveny/hleda se jakykoliv ktery projde validaci 3. pokud se tentyz certifikat da ziskat z vice zdroju (posila ho server, je v lokalni konfiguraci, stahuje se z AIA URL), je otazka, ktery s epouzije - podstatne, pokdu je tam vice instanci se stejnym subjektem a vystavitelem ale ruznym datem platnosti.

Uz me moc nenapada, co jeste zkusit, aby fetch na FreeBSD 11.2 s ca_root_nss-3.63 byl schopny stahnout soubor z webserveru s aktualnim Let's Encrypt certifikatem.

Rekl bych, ze potrebujes upravit /usr/local/etc/ssl/cert.pem

Coz nemusi nutne znamenat, ze tam das aktualni certifikat. Pokud mezilehle certifikaty posila server, je lepsi je na klientovi ze souboru nevkladat.

Dan




--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem