problem s fetch a SSL/TLS certifikaty

Dan Lukes dan at obluda.cz
Fri Oct 1 00:18:19 CEST 2021


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






More information about the Users-l mailing list