Frage Wie aktualisiere ich das cURL CA-Paket auf RedHat?


Ich stoße auf Probleme, wo das CA-Bundle, das mit meiner Version von cURL gebündelt wurde, 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 hat mir nicht geholfen, weil ich nicht verstanden habe, was ich tun oder wie ich es tun soll. Ich verwende RedHat und muss das CA-Paket aktualisieren. Was muss ich tun, um mein CA-Paket auf RedHat zu aktualisieren?


34
2018-06-01 17:45


Ursprung




Antworten:


Für RHEL 6 oder spätersollten Sie verwenden Update-CA-Vertrauen, wie lzap in seiner Antwort unten beschreibt.

--- Für ältere Versionen von Fedora, CentOS, Redhat:

Curl verwendet das System - das Standard-CA-Paket ist in /etc/pki/tls/certs/ca-bundle.crt gespeichert. Bevor Sie es ändern, erstellen Sie eine Kopie dieser Datei, damit Sie bei Bedarf den Systemstandard wiederherstellen können. Sie können einfach neue CA-Zertifikate an diese Datei anhängen oder das gesamte Paket ersetzen.

Sie fragen sich auch, wo Sie die Zertifikate bekommen können? Ich (und andere) empfehlen curl.haxx.se/ca. In einer Zeile:

curl https://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt

Fedora Core 2-Standort ist /usr/share/ssl/certs/ca-bundle.crt.


46
2018-06-01 19:14



Das ist gut, aber wie kann ich sicher sein, dass das von mir hinzugefügte Zertifikat beim nächsten Update von ca-bundle.crt nicht verloren geht? Gibt es einen Ort, an dem ich den neuen Platz finden kann, an dem er automatisch eingefügt wird? - Andrew Schulman
Ab 2006 sollten openssl-Upgrades die ca-bundle.crt-Datei nicht ersetzen (siehe rhn.redhat.com/errata/RHSA-2006-0661.html). Wenn Sie jedoch ein anderes Paket installiert haben, z. B. das von @mgorven empfohlene CA-Zertifikatspaket, erwarte ich, dass es manuell überschrieben wird. - Nada


Die empfohlene Vorgehensweise für RHEL 6+ Systeme ist die Verwendung Update-CA-Vertrauen Werkzeug, das jetzt standardmäßig installiert ist.

# cat /etc/pki/ca-trust/source/README 
This directory /etc/pki/ca-trust/source/ contains CA certificates and 
trust settings in the PEM file format. The trust settings found here will be
interpreted with a high priority - higher than the ones found in 
/usr/share/pki/ca-trust-source/.

=============================================================================
QUICK HELP: To add a certificate in the simple PEM or DER file formats to the
            list of CAs trusted on the system:

            Copy it to the
                    /etc/pki/ca-trust/source/anchors/
            subdirectory, and run the
                    update-ca-trust
            command.

            If your certificate is in the extended BEGIN TRUSTED file format,
            then place it into the main source/ directory instead.
=============================================================================

Please refer to the update-ca-trust(8) manual page for additional information

Daher müssen Sie nur Ihre CRT-Datei in die /etc/pki/ca-trust/source/anchors/ und um das Tool zu starten. Arbeit erledigt. Dies ist sicher, Sie müssen keine Sicherungen durchführen. Die vollständige Handbuchseite finden Sie hier: https://www.mankier.com/8/update-ca-trust


32
2017-10-07 11:38



Hi, funktioniert es für dich? Ich habe gerade versucht, dem Szenario zu folgen access.redhat.com/solutions/1549003 und es funktioniert nicht für mich. - Kirby


RHEL stellt die Mozilla CA Zertifikate als Teil der ca-certificates Paket (installiere dieses mit yum wenn es nicht bereits installiert ist). Um CURL zu empfehlen, diese zu verwenden, verwenden Sie die --cacert Parameter mögen so.

curl --cacert /etc/ssl/certs/ca-bundle.crt https://google.com/

6
2018-06-01 18:28



Ich habe es versucht yum install ca-certificates und hab No package ca-certificates available - Andrew
RHEL6 hat dieses Paket; Ich schätze, Sie verwenden eine ältere Version. Leider hat sich die Liste seit 2010 nicht geändert, danke, dass Sie uns auf dem Laufenden halten. - Dan Pritts
Ich verwende RHEL7 auf AWS EC2, ich habe gerade mein Paket aktualisiert 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 Information hinzufügen. - DuffJ


Wahrscheinlich hängt es davon ab, welche Version von Redhat. Sie können herausfinden, welches Paket die Datei tatsächlich aktualisiert, indem Sie Folgendes tun:

rpm -qf /etc/pki/tls/certs/ca-bundle.crt

Mein Ergebnis zeigte das openssl-0.9.8e-12.el5 muss aktualisiert werden.

Wenn in Ihrer Distribution keine aktualisierten Zertifikate vorhanden sind, müssen Sie gemäß Nada's Antwort manuell aktualisieren.


6
2017-10-19 10:58





Seit Dan Pritts Kommentar hat Red Hat die Zertifikatspakete für unterstützte RHEL-Releases häufiger aktualisiert. Sie können dies sehr leicht im Paket Changelog sehen. Die Zertifikate von RHEL 6 wurden zweimal im Jahr 2013 und zweimal im Jahr 2014 aktualisiert.

Alle RHEL- und verwandten / clone / abgeleiteten Distributionen stellen eine Bundle-Datei zur Verfügung /etc/pki/tls/certs/ca-bundle.crt und die gleiche Datei an /etc/pki/tls/cert.pem (auf älteren Distributionen cert.pem ist ein Symlink zu ca-bundle.crt; In neueren Distributionen sind beide Symlinks zu einer Datei, die von update-ca-trust).

In RHEL 6 und neuer ist das Paket Teil des Pakets "ca-certificates". In RHEL 5 und früher ist es Teil des "openssl" -Pakets.

In RHEL 6 mit dem Update https://rhn.redhat.com/errata/RHEA-2013-1596.html und jedes neuere RHEL, das 'Systemzertifikat' System ist verfügbar (Sie müssen laufen update-ca-trust enable um es zu ermöglichen) und die beste Methode ist die von lzap gegeben. Ein Vorteil dieses Systems ist, dass es für NSS- und GnuTLS-basierte Anwendungen sowie 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 älter (und RHEL 6, wenn Sie das neue System nicht verwenden möchten) können Sie zusätzlichen Zertifizierungsstellen vertrauen, indem Sie ihre PEM-formatierten Zertifikatsdateien platzieren mit der Erweiterung .pem in / etc / pki / tls / certs und läuft c_rehash (kann auch brauchen yum install /usr/bin/c_rehash). Dies funktioniert nur für Software, die die standardmäßigen Trust Stores von OpenSSL verwendet. Dies ist besser als das Bearbeiten oder Ersetzen der Bundle-Datei, da Sie damit weiterhin offizielle Updates für die Bundle-Datei erhalten.

Software, die einen Speicherort der Bundle-Dateien direkt verwendet (anstatt OpenSSL zur Verwendung der standardmäßigen Trust Stores des Systems zu bitten), wird die Änderung nicht berücksichtigen. Wenn Sie eine solche Software haben, müssen Sie die Bundle-Datei bearbeiten (oder die Software verbessern). Software, die OpenSSL überhaupt nicht verwendet, respektiert das hinzugefügte Zertifikat nicht.


5
2018-01-14 22:11





Ich musste das nur auf einer alten RHEL5-Box machen. Ich traf den Haken 22 ... curl würde den https-Download ablehnen, weil die Zertifikate auf dem Rechner 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".)

locken https://curl.haxx.se/ca/cacert.pem --insecure -o /etc/pki/tls/certs/ca-bundle.crt


2
2017-08-25 17:15