RedHat'ta cURL CA paketini nasıl güncelleyebilirim?


38

CURL sürümümle birlikte verilen CA paketinin modası geçmiş olduğu sorunlar ile karşılaşıyorum.

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

Belgeleri okumak bana yardımcı olmadı çünkü ne yapmam gerektiğini ya da nasıl yapmam gerektiğini anlamadım. RedHat kullanıyorum ve CA paketini güncellemem gerekiyor. RedHat'taki CA paketimi güncellemek için ne yapmam gerekiyor?

Yanıtlar:


50

RHEL 6 veya üzeri için , aşağıdaki cevabında anlatıldığı gibi update-ca-trust kullanıyor olmalısınız .

--- Fedora, CentOS, Redhat'ın eski sürümleri için:

Curl, sistemin varsayılan CA paketini kullanıyor /etc/pki/tls/certs/ca-bundle.crt dosyasında saklanır. Değiştirmeden önce, gerektiğinde sistem varsayılanını geri yükleyebilmeniz için bu dosyanın bir kopyasını alın. Bu dosyaya yeni CA sertifikaları ekleyebilir veya paketin tamamını değiştirebilirsiniz.

Sertifikaları nereden alacağınızı da merak ediyor musunuz? Ben (ve diğerleri) curl.haxx.se/ca adresini tavsiye ederim. Bir satırda:

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

Fedora Core 2'nin yeri /usr/share/ssl/certs/ca-bundle.crt.


Bu iyi, ancak eklediğim sertifikanın bir sonraki ca-bundle.crt güncellemesinde kaybolmayacağından nasıl emin olabilirim? Yenisini otomatik olarak ekleneceği bir yere koyabileceğim bir yer var mı?
Andrew Schulman

2006'dan itibaren openssl yükseltmeleri ca-bundle.crt dosyasını değiştirmemelidir (bkz. Rhn.redhat.com/errata/RHSA-2006-0661.html ). Ancak, başka bir paketiniz varsa, mgorven tarafından önerilen ca-sertifikaları paketi gibi, o zaman el ile üzerine yazılmasını bekliyorum.
Nada

36

Bunu RHEL 6+ sistemlerinde yapmanın önerilen yolu, şu anda varsayılan olarak yüklü olan update-ca-trust aracını kullanmaktır .

# 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

Bu nedenle, crt dosyanızı sadece /etc/pki/ca-trust/source/anchors/ve aracını çalıştırmak için bırakmanız gerekir . İş bitti. Bu güvenlidir, herhangi bir yedekleme yapmanız gerekmez. Tam manuel sayfa burada bulunabilir: https://www.mankier.com/8/update-ca-trust


Merhaba, sizin için çalışıyor mu? Senaryoyu access.redhat.com/solutions/1549003 adresinden izlemeye çalıştım ve bu benim için işe yaramadı.
Kirby,

6

RHEL, Mozilla CA sertifikalarını ca-certificatespaketin bir parçası olarak sağlar ( yumönceden kurulmamışsa bunu yükleyin ). CURL'ye bunları kullanmasını söylemek için --cacertböyle bir parametre kullanın .

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

Denedim yum install ca-certificatesve anladımNo package ca-certificates available
Andrew

1
RHEL6 bu pakete sahiptir; Eski bir sürüm kullandığınızı tahmin ediyorum. Ne yazık ki liste 2010'dan bu yana değişmedi, bizi redhatten haberdar ettiğiniz için teşekkür ederiz.
Dan Pritts

AWS EC2'de RHEL7 kullanıyorum, paketimi yeni geliştirdim ca-certificates.noarch 0:2014.1.98-70.0.el7_0- maalesef sorunumu çözmedi, ancak bu bilgiyi ekleyeceğimi düşündüm.
DuffJ

6

Muhtemelen Redhat'ın hangi versiyonuna bağlı. Hangi paketin dosyayı gerçekten güncellediğini bulabilirsiniz:

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

Sonuç, openssl-0.9.8e-12.el5'in güncellenmesi gerektiğini gösteriyordu .

Dağıtımınızda güncellenmiş sertifika yoksa, Nada'nın cevabına göre manuel olarak güncellemelisiniz.


6

Dan Pritts'in yorumundan bu yana Red Hat, desteklenen RHEL sürümleri için sertifika paketlerini daha sık güncellemektedir; Bunu changelog paketinde kolayca görebilirsiniz. RHEL 6'nın sertifikaları 2013 yılında iki kez ve 2014 yılında iki kez güncellendi.

Tüm RHEL ve ilgili / klon / türetilmiş dağıtımlar, bir paket dosyası sağlar /etc/pki/tls/certs/ca-bundle.crtve aynı dosya /etc/pki/tls/cert.pem(eski dağıtımlar cert.pemiçin bir sembolik bağlantıdır ca-bundle.crt; daha yeni dağıtımlar için her ikisi de bir dosya çıktısının sembolik bağlarıdır update-ca-trust).

RHEL 6 ve daha yeni sürümlerde paket, “sertifikalar” paketinin bir parçasıdır. RHEL 5 ve önceki sürümlerde 'openssl' paketinin bir parçasıdır.

Https://rhn.redhat.com/errata/RHEA-2013-1596.html ve daha yeni RHEL güncellemeli RHEL 6'da , 'paylaşılan sistem sertifikaları' sistemi mevcuttur ( update-ca-trust enableetkinleştirmek için çalıştırmalısınız ) ve en iyisi yöntem lzap tarafından verilen yöntemdir. Bu sistemin bir avantajı, NSS ve GnuTLS tabanlı uygulamalar ve OpenSSL tabanlı uygulamalar için çalışmasıdır. Ayrıca, bir sertifikayı dizine yerleştirerek de güvenebilirsiniz /etc/pki/ca-trust/source/blacklist/.

RHEL 5 ve daha eski sürümlerinde (ve yeni sistemi kullanmak istemiyorsanız RHEL 6), PEM formatlı sertifika dosyalarını / etc / pki / tls / certs uzantısına.pem yerleştirerek ve çalıştırarak ekstra CA'lara güvenebilirsiniz c_rehash(ayrıca gerekebilir) yum install /usr/bin/c_rehash). Bu, yalnızca OpenSSL'nin varsayılan güven depolarını kullanan yazılımlar için işe yarar. Bu, paket dosyasını düzenlemekten veya değiştirmekten daha iyidir, çünkü paket dosyasına resmi güncellemeler almaya devam etmenize izin verir.

Paket dosya konumlarından birini doğrudan kullanan yazılım (OpenSSL'den sistem varsayılan güven depolarını kullanmasını istemek yerine) değişikliğe saygı göstermeyecektir; Eğer böyle bir yazılımınız varsa, paket dosyasını düzenlemekte (ya da yazılımı geliştirmekte) sıkışmışsınızdır. OpenSSL'yi hiç kullanmayan yazılım, eklenen sertifikaya uymaz.


3

Bunu sadece eski bir RHEL5 kutusunda yapmak zorunda kaldım. Yakalama 22'ye çarptım ... curl, https indirmesini reddederdi çünkü makinedeki sertifikalar curl.haxx.se sertifikalarını doğrulamak için çok eskiydi.

Https indirmeye zorlamak için curl --insecure seçeneğini kullandım. (Evet, biliyorum ... bu "güvensiz" dir.)

kıvırmak https://curl.haxx.se/ca/cacert.pem --insecure -o /etc/pki/tls/certs/ca-bundle.crt


1

İçin RHEL 6 , ben güncellenmesi ve Red Hat son CA sertifikalarını paketini yeniden yükleyerek bu sorunu gidermek başardı:

sudo yum update ca-certificates
sudo yum reinstall ca-certificates

(Benim durumumda bu, daha yeni olan "Let's Encrypt Authority X3" imzalama sertifikasına güvenilmesine izin vermek için yeterliydi.)


Komut benim için çalıştı (CentOS 6) ancak sorunumu çözmedi ("DigiCert SHA2 Secure Server CA" tarafından verilen bir sertifika ile)
rinogo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.