Mam problemy z tym, że pakiet CA, który został dołączony do mojej wersji cURL, jest nieaktualny.
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
Czytanie dokumentacji nie pomogło mi, ponieważ nie rozumiałem, co muszę zrobić ani jak to zrobić. Korzystam z RedHat i muszę zaktualizować pakiet CA. Co muszę zrobić, aby zaktualizować mój pakiet CA w RedHat?
źródło
Zalecanym sposobem na to w systemach RHEL 6+ jest użycie narzędzia update-ca-trust , które jest teraz domyślnie instalowane.
Dlatego musisz tylko upuścić plik CRT do
/etc/pki/ca-trust/source/anchors/
i uruchomić narzędzie. Robota skończona. Jest to bezpieczne, nie trzeba wykonywać żadnych kopii zapasowych. Pełna strona podręcznika znajduje się tutaj: https://www.mankier.com/8/update-ca-trustźródło
RHEL zapewnia certyfikaty Mozilla CA jako część
ca-certificates
pakietu (zainstaluj to,yum
jeśli nie jest jeszcze zainstalowane). Aby powiedzieć cURL, aby ich używał, użyj--cacert
parametru w ten sposób.źródło
yum install ca-certificates
i dostałemNo package ca-certificates available
ca-certificates.noarch 0:2014.1.98-70.0.el7_0
- niestety nie rozwiązało to mojego problemu, ale pomyślałem, że dodam tę informację.Prawdopodobnie zależy, która wersja Redhat. Możesz sprawdzić, który pakiet faktycznie aktualizuje plik, wykonując:
Mój wynik pokazał, że openssl-0.9.8e-12.el5 wymaga aktualizacji.
Jeśli w twojej dystrybucji nie ma zaktualizowanych certyfikatów, musisz zaktualizować ręcznie, zgodnie z odpowiedzią Nady.
źródło
Od komentarza Dana Prittsa Red Hat częściej aktualizuje pakiety certyfikatów dla obsługiwanych wersji RHEL; widać to dość łatwo w dzienniku zmian pakietów. Certyfikaty RHEL 6 zostały zaktualizowane dwukrotnie w 2013 r. I dwukrotnie w 2014 r.
Wszystkie RHEL i pokrewne / klonowane / pochodne dystrybucje zapewniają plik pakietu w
/etc/pki/tls/certs/ca-bundle.crt
i ten sam plik w/etc/pki/tls/cert.pem
(w starszych dystrybucjachcert.pem
jest dowiązaniem symbolicznym doca-bundle.crt
; w nowszych dystrybucjach oba są dowiązaniami symbolicznymi do pliku wyjściowego przezupdate-ca-trust
).W wersji RHEL 6 i nowszych pakiet jest częścią pakietu „ca-certyfikaty”. W wersji RHEL 5 i wcześniejszych jest on częścią pakietu „openssl”.
W RHEL 6 z aktualizacją https://rhn.redhat.com/errata/RHEA-2013-1596.html i każdym nowszym RHEL dostępny jest system „certyfikatów systemu współdzielonego” (należy go uruchomić,
update-ca-trust enable
aby go włączyć) i najlepszy metoda jest podana przez lzap. Zaletą tego systemu jest to, że działa on zarówno dla aplikacji opartych na NSS i GnuTLS, jak i opartych na OpenSSL. Pamiętaj, że możesz nie ufać certyfikatowi, umieszczając go w katalogu/etc/pki/ca-trust/source/blacklist/
.W RHEL 5 i starszych (i RHEL 6, jeśli nie chcesz korzystać z nowego systemu) możesz zaufać dodatkowym urzędom certyfikacji, umieszczając ich pliki certyfikatów w formacie PEM z rozszerzeniem
.pem
w / etc / pki / tls / certs i działającc_rehash
(może również wymagaćyum install /usr/bin/c_rehash
). Działa to tylko w przypadku oprogramowania korzystającego z domyślnych magazynów zaufania OpenSSL. Jest to lepsze niż edytowanie lub zastępowanie pliku pakietu, ponieważ pozwala on nadal otrzymywać oficjalne aktualizacje pliku pakietu.Oprogramowanie, które korzysta bezpośrednio z jednej z lokalizacji plików pakietu (zamiast prosić OpenSSL o użycie domyślnych systemowych magazynów zaufania), nie uwzględni zmiany. jeśli masz takie oprogramowanie, utknąłeś podczas edycji pliku pakietu (lub ulepszania oprogramowania). Oprogramowanie, które w ogóle nie korzysta z OpenSSL, nie będzie szanowało dodanego certyfikatu.
źródło
Musiałem to zrobić na starym pudełku RHEL5. Uderzyłem w haczyk 22 ... curl odrzuciłby pobieranie https, ponieważ certyfikaty na maszynie były zbyt stare, aby zweryfikować certyfikaty curl.haxx.se.
Użyłem opcji --insecure curl, aby wymusić pobieranie https. (Tak, wiem ... to jest „niepewne”).
źródło
W przypadku RHEL 6 udało mi się to naprawić, aktualizując i ponownie instalując najnowszy pakiet certyfikatów CA firmy Red Hat:
(W moim przypadku wystarczyło to, aby zaufać nowemu certyfikatowi podpisującemu „Let's Encrypt Authority X3”).
źródło