2015-12-21 48 views
14

Birkaç aydır oturum açma işlemini doğrulamak için cURL kullanıyorum ve çalışıyor.Curl hatası SSL sertifikası alınamadı - sertifika veren yerel sertifika almadı

$searchURL = "https://url.com/isTokenValid?"; 

$strCookie = 'asdf=' . $_COOKIE['asdf'] . '; path=/';  
$ch = curl_init();    
curl_setopt($ch, CURLOPT_URL, $searchURL); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
curl_setopt($ch, CURLOPT_COOKIE, $strCookie); 
curl_setopt($ch, CURLOPT_CAPATH, "\cacert.pem"); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch, CURLOPT_FAILONERROR, FALSE); 

if($answer = curl_exec($ch)) 
{   
    if (strpos($answer,'true') !== false) 
    { 
    $login = true; 
    } 
    else 
    { 
    $login = false; 
    } 

Bu sabah - bu çalışmayı durdurdu ve ben hata alıyorum:

Curl error: SSL certificate problem: unable to get local issuer certificate

ben https://curl.haxx.se/ca/cacert.pem den cacert.pem dosyasını kullanıyorum - durumunda bu veriler güncellenmiş veya tazelenmiş gerektiğini bir şekilde, hala en güncel görünüyor bu tarihten, dosyayı kullanıyorum:

Certificate data from Mozilla as of: Wed Oct 28 04:12:04 2015

Bu web geliştirme benim işim değil, Bu yüzden burada neler olup bittiğini nasıl gidereceğimi bilmiyorum. İlk düşüncem, sunucu tarafında bir şey olması gerektiğidir, çünkü hafta sonları yerel olarak herhangi bir değişiklik yapmadım ama birileri beni doğru yöne yönlendirebilseydim, poking yapmaya başlamak istemedim.

Teşekkürler!

+1

Ne istediklerini sunucuya komut satırı erişimi vardır? Eğer öyleyse, bu komutu deneyin 'openssl s_client -connect url.com: 443' – Machavity

+0

Uzak sitenin yakın zamanda yeni bir sertifika yüklemesi mümkündür. Tarihlerin ve/veya yayıncının değişip değişmediğini görmek için sertifikayı kontrol etmek için tarayıcınızı kullanın. – drew010

+0

@Machavity Windows makinem var - Komut satırı erişimi ile ne kastettiğinizden emin değilim - Komutu Windows 'cmd'de denedim ve bu bir komut değil, bu yüzden başka bir şey ifade ettiğini varsayalım. –

cevap

1

İndir https://curl.haxx.se/ca/cacert.pem ve ssl.txt için yeniden adlandırmak, o zaman deneyebilirsiniz

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE); 
curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/ssl.txt"); 
0

adam bukle devletler:

-k, --insecure 
      (SSL) This option explicitly allows curl to perform "insecure" 
      SSL connections and transfers. All SSL connections are attempted 
      to be made secure by using the CA certificate bundle installed 
      by default. This makes all connections considered "insecure" 
      fail unless -k, --insecure is used. 

      See  this online resource for further details: 
      http://curl.haxx.se/docs/sslcerts.html 
İlgili konular