2016-04-07 21 views
3

MacOSx El Capitan'daki XAMPP'nin bir parçası olarak PHP Versiyon 5.6 çalıştırıyorum ve birkaç https sitesindeki hatalarım var. örneğin:php SSL3_GET_SERVER_CERTIFICATE: sertifika doğrulanamadı

  1. GitHub
  2. Composer
  3. PayPal TLS Test

i' ilk neyi liste: https://www.google.com/

file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Ancak hiçbir SSL hata bu sitelerde döndü ve denedim şimdiye kadar hiçbir şey işe yaramıyor. İlk

çalıştı Google:

  1. SSL error SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
  2. PHP - SSL certificate error: unable to get local issuer certificate
  3. HTTPS and SSL3_GET_SERVER_CERTIFICATE:certificate verify failed, CA is OK

Manuel

1. Güncelleme cert.pem

php -r 'print_r(openssl_get_cert_locations());'

dosya ve sonucuydu. /Applications/XAMPP/xamppfiles/share/openssl/cert.pem

yılında

Array 
(
    [default_cert_file] => /Applications/XAMPP/xamppfiles/share/openssl/cert.pem 
    [default_cert_file_env] => SSL_CERT_FILE 
    [default_cert_dir] => /Applications/XAMPP/xamppfiles/share/openssl/certs 
    [default_cert_dir_env] => SSL_CERT_DIR 
    [default_private_dir] => /Applications/XAMPP/xamppfiles/share/openssl/private 
    [default_default_cert_area] => /Applications/XAMPP/xamppfiles/share/openssl 
    [ini_cafile] => /Applications/XAMPP/xamppfiles/share/openssl/cert.pem 
    [ini_capath] => 
) 

Kaydedilen

openssl.cafile = /Applications/XAMPP/xamppfiles/share/openssl/cert.pem 
curl.cainfo = /Applications/XAMPP/xamppfiles/share/openssl/cert.pem 

yeniden başlatılması Apache ama hiçbir başarısını aşağıdaki php.ini güncellendi. pem dosyasını okumak için çalıştı

echo file_get_contents("/Applications/XAMPP/xamppfiles/share/openssl/cert.pem"); 

Test Case

O google.com üzerinde github.comgetcomposer.orgpaypal.com değil (google.com benim pencere sistemi üzerinde de çalışır)

üzerinde çalışıyor (hiçbir hata döndürdü)
php -r '$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://tlstest.paypal.com/"); var_dump(curl_exec($ch)); var_dump(curl_error($ch));' 

Sonuç: PayPal_Connection_OKbool(true)

Ama google.com

php -r '$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://www.google.com/"); var_dump(curl_exec($ch)); var_dump(curl_error($ch));' 

Sonuç tarih: string(63) "SSL certificate problem: unable to get local issuer certificate"

P.S.: akran doğrulama devre dışı bırakılması kabul edilebilir olmayacaktır.

cevap

0

Benim durumumda, doğru cert.pem dosyasının bulunduğundan emin olmak yeterli değildi. Ayrıca saat diliminizi php.ini'nizde date.timezone anahtarını kullanarak gerçek saat diliminize ayarlamanız gerekir (benim durumumda, America/Los Angeles'a ayarladım). Aksi takdirde, PHP UTC'yi kullanmaya başlayacaktır ve sistem saatinizin kapalı olduğu görünecektir. Bu, Mac OS X El Capitan'da (10.11.2) benim için sorunu çözdü.

+0

Yolunuzu denedi, ancak çalışmadı. –

İlgili konular