PHP CURL CURLOPT_SSL_VERIFYPEER yok sayıldı


117

Bazı nedenlerden dolayı CURL'yi HTTPS ile kullanamıyorum. Curl kitaplıklarının yükseltmesini çalıştırana kadar her şey yolunda gidiyordu. Şimdi CURL isteklerini gerçekleştirmeye çalışırken şu yanıtı yaşıyorum: SSL CA sertifikasında sorun var (yol? Erişim hakları?)

İlgili konularda burada yayınlanan aşağıdaki önerileri, aşağıdakileri yapmaya çalıştım:

  • Ana bilgisayar ve eş için doğrulamayı devre dışı bırakın

    curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
    
  • Http://curl.haxx.se/docs/caextract.html adresindenCURLOPT_SSL_VERIFYPEER indirilen cacert.pem'i etkinleştirin ve işaret edin

    curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);  
    curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
    
  • Ben de aynı şeyi bağlanmaya çalıştığım sunucu için paket CA sertifikası olarak sağlanan PositiveSSL.ca-bundle ile yapmaya çalıştım.

  • Php ini ayarlarını curl.cainfo=cacert.pem(aynı dizindeki ve apache tarafından erişilebilir dosya) ile düzenleyin

  • yeniden adlandırma /etc/pki/nssdbiçin/etc/pki/nssdb.old

Ne yazık ki yukarıdakilerin hiçbiri sorunumu çözemiyor ve sürekli olarak SSL CA sertifikası (yol? Erişim hakları?) Mesajı ile ilgili Sorun alıyorum.

Ve ilk etapta bu doğrulamaya ihtiyacım yok (güvenlik sorunlarının farkındayım).

Başka önerisi olan var mı?

GÜNCELLEME

En son kütüphanelere güncelledikten ve tüm kutuyu yeniden başlattıktan sonra, sadece yaptığım apache değil, şimdi tekrar çalışıyor gibi görünüyor !!!


1
Curl kitaplığını farklı bir SSL yığınına göre (GnuTLS - OpenSSL, belki) yükseltmiş misiniz?
Bruno

Ben öyle düşünmüyorum. Sistem Fedora 16 ve gerçekten yum güncelleme durumuydu. En can sıkıcı şey, tüm bu doğrulamaya ihtiyacım olmaması / istememem ve bunu basitçe devre dışı bırakamayacak gibi görünmem.
Greg 13

Güvenlik için HTTPS kullanmayı hedefliyorsanız, her zaman bu doğrulama sürecini uygulamak isteyeceksiniz.
Bruno

Bunun farkındayım, ancak buradaki kullanım durumum hepsini biraz gereksiz kılıyor. Ayrıca curl'yi mevcut olan en son ve php'yi 5.4'e güncelledim. Şimdi, hata mesajı gitti, ancak kıvrılmadan da herhangi bir karyola alamıyorum :)
Greg 13

Ha, şimdi bir yerde curl_errno fonksiyonu raporlarının durum 77'yi alıyorum ki bu kılavuza göre CURLE_SSL_CACERT_BADFILE.
Greg 13

Yanıtlar:


240

Dokümantasyona göre: ana bilgisayar veya eş sertifikayı doğrulamak için seçenekle alternatif sertifikalar belirtmeniz gerekir CURLOPT_CAINFOveya seçenekle bir sertifika dizini belirtilebilir CURLOPT_CAPATH.

Ayrıca bak CURLOPT_SSL_VERIFYHOST:

  • 1 SSL eş sertifikasında ortak bir adın varlığını kontrol etmek için.
  • 2 ortak bir adın varlığını kontrol etmek ve ayrıca sağlanan ana bilgisayar adıyla eşleştiğini doğrulamak için.

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

5
SSL doğrulamasını kapatmak, yine de tüm SSL güvenliğini kaldırır. Bunun yerine PHP yapılandırmanızı düzeltmelisiniz.
Scopey

7
@Scopey ama bazen kendi kendine imzalanan sertifikalarla yerel geliştirme ortamlarında ihtiyacınız olabilir. Bu yüzden muhtemelen halka açık olmayan ortamlarda bir anlam ifade etmiyor, ancak günlükte bazı uyarıların olması her zaman daha iyidir (örn. SSL verification disabled)
Ivan Borshchov

2

CentOS7 makinesinde de aynı sorunu yaşadık. Devre dışı bırakmak VERIFYHOST VERIFYPEERsorunu çözmedi, artık cURL hatası almadık, ancak yanıt yine de geçersizdi. CURL'nin yaptığı wgetgibi aynı bağlantıya yapmak da bir sertifika hatasıyla sonuçlandı.

-> Bizim çözümümüz de VPS'yi yeniden başlatmaktı, bu sorunu çözdü ve isteği tekrar tamamlamayı başardık.

Bizim için bu bir bellek bozulması sorunu gibi görünüyordu. VPS'yi yeniden başlatmak, kütüphaneyi hafızaya tekrar yükledi ve şimdi çalışıyor. Dolayısıyla, yukarıdaki çözüm @cloverişe yaramazsa, makinenizi yeniden başlatmayı deneyin.


Aralıklı olmadığından emin olun. Bazen işe yaradığı yerlerde paypal ve eş doğrulamayla ilgili bir sorun yaşadım, bazen işe yaramadı. Rastgele görünüyordu. Kafile yolunu açık bir şekilde kurmak ve curl'yi sorunu nerede çözdüğünü söylemek.
Neil Davis
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.