Ubuntu 10.04 / CURL: CA Paketini nasıl düzeltebilirim / güncelleyebilirim?


17

Son zamanlarda sunucumuzu 8.04'ten 10.04'e ve onunla birlikte tüm yazılımı yükselttim.

Çevrimiçi bulduğum kadarıyla, CURL'nin yeni sürümünün bir CA paketi içermediği ve sonuç olarak bağlandığınız sunucunun sertifikasının geçerli bir yetkili tarafından imzalandığını doğrulayamadığı anlaşılıyor .

Gerçek hata:

CURL hatası: SSL sertifikası sorunu, CA sertifikasının TAMAM olduğunu doğrulayın.
Ayrıntılar: hata: 14090086: SSL rutinleri: SSL3_GET_SERVER_CERTIFICATE:
sertifika doğrulaması başarısız oldu 

Bulduğum bazı yerler, CURL'yi çağırdığınızda bir seçenek belirleyerek bir CA dosyasını manuel olarak belirtmenizi veya denetimi tamamen devre dışı bırakmanızı önerir, ancak her uygulamanın CURL çağrılarını değiştirmek yerine sorunu küresel olarak düzeltmeyi tercih ederim.

Var olan tüm uygulama kodunun değiştirilmesine gerek kalmadan çalışabilmesi için CURL'nin CA sorununu sunucu genelinde düzeltmenin bir yolu var mı?

Yanıtlar:


17

Ben aynı sorun yaşıyorum ve biraz etrafında alay sonra doğrudan curl dev sitesinden ubuntu kıvırmak için hazır bir CA-certs paketi indirebilirsiniz bulundu.

cd /etc/ssl/certs
sudo wget http://curl.haxx.se/ca/cacert.pem

Şimdi curl en güncel paketi kullanıyor ve hazırsınız.


1
bundan sonra güncellemek zorunda kaldım: update-ca-certificate -f
Tahıl

9

Github'da bulunan aws komut satırı araçlarını almak için komut satırından Ubuntu 12.04 çalışan kıvrılma ile benzer bir sorun vardı . Komut satırını şöyle çalıştırırsam buldum:

curl https://raw.github.com/timkay/aws/master/aws -o aws --cacert /etc/ssl/certs/ca-certificates.crt

işe yarayacaktı. Ama ben "cacert" argüman işe yaramaz önlemek böylece CURL_CA_BUNDLE ortam değişkenini ayarlamak için çalışıyor. Sonuçta ca sertifikalarının güncellenmesi sorunu çözüyor gibiydi:

sudo update-ca-certificates

Bir yan not olarak, bir noktada curl.haxx.se'den ca-certs'i güncelledim, bu da sorunu çözmedi, ancak ilişkili olabilir. ( sudo wget http://curl.haxx.se/ca/cacert.pemçalıştır /etc/ssl/certs).


Link 404 benim için. Bu çalışıyor: curl.haxx.se/ca/cacert.pem
dave1010

2
Hmm. HTTPS üzerinden değil , böyle sertifikalar içeren bir dosyayı almak için tehlikeli görünüyor .
Matthew Schinckel

5

Tipik olarak, benzersiz bir uygulaması olmayan ve OpenSSL'ye göre derlenen yazılımlar, genellikle sistemde bulunan sistem çapında ca-bundle.crt'ye başvurur /usr/share/ssl/certs.

Konum Ubuntu'da farklı olabilir, ancak OpenSSL paketi ca-bundle dosyasını içermelidir.

CURL, sertifikaları nasıl doğruladığını belirtmek için çeşitli seçeneklere sahiptir.

  • CURL_CA_BUNDLECa-paketi dosyasının konumu için ortam değişkeni.
  • --capathCA sertifikalarının bulunduğu dizini belirtmenize olanak tanır. (Geçersiz kılar CURL_CA_BUNDLE)
  • --cacert CA sertifika dosyasını belirlemenizi sağlar.

CentOS sunucumda, CURL'nin kullandığı ca-bundle yolunu tanımlamak için aşağıdakileri çalıştırabilirim:

$ curl-config --ca
/usr/share/ssl/certs/ca-bundle.crt

1
Açık SSL yüklü. / Etc / ssl / certs / dizininde bir araya getirilmiş bir grup sertifikaya benzeyen bir "ca-certificate.crt" dosyası var, ama sanırım CURL görmüyor mu? CURL'nin CA Paketi için bir yapılandırma ayarı var mı?
Nick

Doğrulamaya çalıştığı sertifika türü olmadığından emin misiniz? Genişletilmiş Doğrulama sertifikaları gibi daha yeni sertifika teknolojileri, kök sertifikalar nispeten yeni olduğu için genellikle paket güncellemeleri gerektirir. Yakında yapacağım düzenlemeye de göz atın.
Warner

curl-config Ubuntu'da geçerli bir komut gibi görünmüyor. CURL_CA_BUNDLE'ı nasıl ayarlarım?
Nick

libcurl3-openssl-devHızlı bir internet aramasına dayanan paketin bir parçası gibi görünüyor . CURL_CA_BUNDLEsadece bir ortam değişkenidir. Bash CURL_CA_BUNDLE=/path/to/file,.
Warner

Tamam, paket kurulu ancak "curl-config --ca" boş bir satır oluşturuyor. Değişkeni 'CURL_CA_BUNDLE = "/ etc / ssl / certs / ca-certificate.crt"' kullanarak ayarlamayı denedim. Ancak "curl-config --ca" daha sonra boş bir satır oluşturur.
Nick
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.