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