Am un script perl care rulează openssl pentru a verifica local validitatea certificatelor. Nu vreau doar să setez un env var și să plec. Se pare că ceva este amuzant cu instalarea sau configurația mea openssl
Care este sistemul, versiunile...
Validez local certificatele de la Letsencrypt. Acesta este un sistem 20.04/Focal. Openssl este OpenSSL 1.1.1f 31 martie 2020
și așa m-aș aștepta să valideze cu plăcere certificatele, chiar și cu LE „semnarea încrucișată” folosind noul certificat rădăcină ISRG.
Cu toate acestea, odată ce vechiul certificat X3 a expirat, aceste erori au început...
openssl verifica -verbose -purpose sslserver -CAfile /path/redacted/chain.pem /path/redacted/cert.pem
C = SUA, O = Internet Security Research Group, CN = ISRG Root X1.
eroarea 2 la căutarea 2 profunzime: nu se poate obține certificatul emitentului.
eroare /path/redacted/cert.pem: verificarea eșuată
Se simțea ciudat. Unele săpături m-au făcut să mă întreb despre -trusted_first
opțiunea pentru verifica openssl
. Exact asta este openssl ar plângeți dacă este prima opțiune de încredere nu activat. Încercarea de a activa în mod explicit această opțiune, totuși, nu are niciun efect:
openssl verify -trusted_first -verbose -purpose sslserver -CAfile /path/redacted/chain.pem /path/redacted/cert.pem
C = SUA, O = Internet Security Research Group, CN = ISRG Root X1
eroarea 2 la căutarea 2 profunzime: nu se poate obține certificatul emitentului
eroare /path/redacted/cert.pem: verificarea eșuată
OK bine. Opțiunea aceea ar trebui să fie pe implicit din openssl 1.1.1 (acesta este sistemul, vezi mai sus). Așa că includerea mea în mod explicit nu ar trebui să facă nicio diferență.
Dar în cele din urmă am încercat să-l specific ca un env var.Stai, ce? De ce specificarea acestei variabile de mediu remediază comportamentul openssl pentru a avea încredere în primul certificat rădăcină pe care îl găsește în lanț:
setează X509_V_FLAG_TRUSTED_FIRST openssl verify -trusted_first -verbose -purpose sslserver -CAfile /path/redacted/chain.pem /path/redacted/cert.pem
⦠rulează cu valoarea de ieșire zero.
micșorând
Nu înțeleg de ce openssl nu funcționează doar (tm). Acesta este un 20.04 complet actualizat. Cel mai nou certificat rădăcină ISRG este instalat în /etc/ssl/certs/ISRG_Root_X1.pem
și update-ca-certificate
este fericit:
Se actualizează certificatele în /etc/ssl/certs...
0 adăugate, 0 eliminate; Terminat.
Rularea hook-urilor în /etc/ca-certificates/update.d...
Terminat.