Ich habe Probleme, bei denen das mit meiner Version von cURL gelieferte CA-Bundle veraltet ist.
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
Das Lesen der Dokumentation half mir nicht, weil ich nicht verstand, was ich tun musste oder wie ich es tun sollte. Ich verwende RedHat und muss das CA-Bundle aktualisieren. Was muss ich tun, um mein CA-Bundle auf RedHat zu aktualisieren?
quelle
Die empfohlene Vorgehensweise auf RHEL 6+ Systemen ist die Verwendung des Update-CA-Trust- Tools, das jetzt standardmäßig installiert ist.
Aus diesem Grund müssen Sie nur Ihre CRT-Datei in das
/etc/pki/ca-trust/source/anchors/
und ablegen , um das Tool auszuführen. Arbeit erledigt. Dies ist sicher, Sie müssen keine Backups durchführen. Die vollständige Handbuchseite finden Sie hier: https://www.mankier.com/8/update-ca-trustquelle
RHEL stellt die Mozilla CA-Zertifikate als Teil des
ca-certificates
Pakets zur Verfügung (installieren Sie dies mit,yum
falls es nicht bereits installiert ist). Um cURL anzuweisen, diese zu verwenden, verwenden Sie den--cacert
Parameter wie folgt.quelle
yum install ca-certificates
und bekamNo package ca-certificates available
ca-certificates.noarch 0:2014.1.98-70.0.el7_0
Es hat mein Problem leider nicht gelöst, aber ich dachte nur, ich würde diese Informationen hinzufügen.Kommt wohl darauf an welche Version von Redhat. Sie können herausfinden, welches Paket die Datei tatsächlich aktualisiert, indem Sie folgende Schritte ausführen:
Mein Ergebnis zeigte, dass openssl-0.9.8e-12.el5 aktualisiert werden muss.
Wenn Ihre Distribution keine aktualisierten Zertifikate enthält, müssen Sie diese gemäß der Antwort von Nada manuell aktualisieren.
quelle
Seit dem Kommentar von Dan Pritts hat Red Hat die Zertifikat-Bundles für unterstützte RHEL-Releases häufiger aktualisiert. Sie können dies ganz einfach im Paket changelog sehen. Die Zertifikate von RHEL 6 wurden 2013 zweimal und 2014 zweimal aktualisiert.
Alle RHEL- und verwandten / klon- / abgeleiteten Distributionen stellen eine Bundle-Datei unter
/etc/pki/tls/certs/ca-bundle.crt
und dieselbe unter zur Verfügung/etc/pki/tls/cert.pem
(bei älteren Distributionencert.pem
ist dies ein Symlink zuca-bundle.crt
; bei neueren Distributionen sind beide Symlinks zu einer Datei, die von ausgegeben wirdupdate-ca-trust
).Ab RHEL 6 ist das Bundle Teil des Pakets 'ca-certificates'. In RHEL 5 und früheren Versionen ist es Teil des Pakets 'openssl'.
In RHEL 6 mit dem Update https://rhn.redhat.com/errata/RHEA-2013-1596.html und allen neueren RHEL-Versionen ist das System für gemeinsame Systemzertifikate verfügbar (Sie müssen es ausführen
update-ca-trust enable
, um es zu aktivieren) und das Beste Methode ist die von lzap gegebene. Ein Vorteil dieses Systems ist, dass es für NSS- und GnuTLS-basierte Anwendungen sowie für OpenSSL-basierte Anwendungen funktioniert. Beachten Sie, dass Sie einem Zertifikat auch misstrauen können, indem Sie es in das Verzeichnis stellen/etc/pki/ca-trust/source/blacklist/
.In RHEL 5 und älteren Versionen (und RHEL 6, wenn Sie das neue System nicht verwenden möchten) können Sie zusätzlichen Zertifizierungsstellen vertrauen, indem Sie ihre PEM-formatierten Zertifikatdateien mit der Erweiterung
.pem
in / etc / pki / tls / certs ablegen und ausführenc_rehash
(möglicherweise auch erforderlich)yum install /usr/bin/c_rehash
). Dies funktioniert nur für Software, die die Standard-Truststores von OpenSSL verwendet. Dies ist besser als das Bearbeiten oder Ersetzen der Bundle-Datei, da Sie weiterhin offizielle Updates für die Bundle-Datei erhalten können.Software, die einen der Speicherorte der Bundle-Dateien direkt verwendet (anstatt OpenSSL aufzufordern, die Standard-Truststores des Systems zu verwenden), berücksichtigt die Änderung nicht. Wenn Sie eine solche Software haben, können Sie die Bundle-Datei nicht mehr bearbeiten (oder die Software verbessern). Software, die OpenSSL überhaupt nicht verwendet, respektiert das hinzugefügte Zertifikat nicht.
quelle
Ich musste das nur auf einer alten RHEL5-Box machen. Ich traf den Haken 22 ... curl lehnte den https-Download ab, da die Zertifikate auf dem Computer zu alt waren, um die curl.haxx.se-Zertifikate zu validieren.
Ich habe die Option --insecure von curl verwendet, um den https-Download zu erzwingen. (Ja, ich weiß ... es ist "unsicher".)
quelle
Für RHEL 6 konnte ich dieses Problem beheben, indem ich das neueste CA certs-Paket von Red Hat aktualisierte und erneut installierte:
(In meinem Fall hat dies ausgereicht, damit das neuere Signaturzertifikat "Let's Encrypt Authority X3" als vertrauenswürdig eingestuft werden kann.)
quelle