Diagnozez o problemă de verificare a certificatului TLS în Ubuntu Xenial care a rezultat din recent Să criptăm expirarea certificatului rădăcină. Problema se întâmplă în cURL care folosește GnuTLS sub capotă - așa că am folosit gnutls-cli
pentru a-l diagnostica (când se utilizează openssl
, o problemă diferită se întâmplă chiar înainte de verificarea certificatului -- deci nu este de folos).
În ciuda faptului că am actualizat certificatul DST Root CA X3 (cu apt install ca-certificates
) și a confirmat că prin compararea conținutului /usr/share/ca-certificates/mozilla/
(după nume de fișiere, dimensiuni și sume MD5) pe mașina cu probleme și pe alta în care nu există nicio eroare, problema persistă. Diferența conținutului de /etc/ssl/certs/ca-certificates.crt
(care este fișierul pe care GnuTLS îl folosește direct, presupus autogenerat din fostul director de către /usr/sbin/update-ca-certificates
) prezintă diferențe, dar certificatul DST Root CA X3 nu se numără printre ele.
Acum sunt blocat în punctul în care pot reproduce problema cu gnutls-cli
-- dar nu arată ce certificat rădăcină folosește, doar lanțul de certificate furnizat de server, care este totul în regulă:
$ gnutls-cli download.clis.cloud.ibm.com --print-cert </dev/null 2>&1
S-au procesat 129 certificat(e) CA.
Se rezolvă „download.clis.cloud.ibm.com”...
Se conectează la „69.192.0.152:443”...
- Tip certificat: X.509
- Am o listă de certificate cu 3 certificate.
- Informații despre certificat[0]:
- subiect `CN=cert-00045-cdnedge-bluemix.akamaized.net', emitent `C=US,O=Let's Encrypt,CN=R3', cheie RSA 2048 biți, semnat folosind RSA-SHA256, activat `2021-10 -19 02:05:23 UTC', expiră `2022-01-17 02:05:22 UTC', amprenta SHA-1 `8a13f222870579984cf6a0c6cf8ebfe6f122eb0b'
ID-ul cheii publice:
8bb871d529bc8edcd0158b6a16787990e7334bc9
Artă aleatorie a cheii publice:
<<...>
-----ÎNCEPE CERTIFICAT-----
<<...>
-----CERTIFICAT FINAL-----
- Informații despre certificat[1]:
- subiect `C=US,O=Let's Encrypt,CN=R3', emitent `C=US,O=Internet Security Research Group,CN=ISRG Root X1', cheie RSA 2048 biți, semnat folosind RSA-SHA256, activat ` 2020-09-04 00:00:00 UTC', expiră `2025-09-15 16:00:00 UTC', amprenta SHA-1 `a053375bfe84e8b748782c7cee15827a6af5a405'
-----ÎNCEPE CERTIFICAT-----
<<...>
AYYwHQYDVR*** Eroare fatală: Eroare în certificat.
*** Strângerea de mână a eșuat
Eroare GnuTLS: Eroare în certificat.
<<...>
-----CERTIFICAT FINAL-----
- Informații despre certificat[2]:
- subiect `C=US,O=Internet Security Research Group,CN=ISRG Root X1', emitent `O=Digital Signature Trust Co.,CN=DST Root CA X3', cheie RSA 4096 biți, semnat folosind RSA-SHA256, activat `2021-01-20 19:14:03 UTC', expiră `2024-09-30 18:14:03 UTC', amprenta SHA-1 `933c6ddee95c9c41a40f9f50493d82be03ad87bf'
-----ÎNCEPE CERTIFICAT-----
<<...>
-----CERTIFICAT FINAL-----
- Stare: certificatul NU este de încredere. Lanțul de certificate utilizează un certificat expirat.
*** Verificarea PKI a certificatului serverului a eșuat...
Asa de Nu pot vedea ce certificat local cauzează în continuare problema. Există vreo modalitate de a prelua aceste informații?