2015-12-21 35 views
14

私はcURLを使用して数ヶ月間ログインを確認しており、はうまくいきました。CurlエラーSSL証明書がローカル発行者証明書を取得できません - 最近の開発

$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; 
    } 

今朝 - それは動作を停止し、私はエラーを取得する:

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

私はhttps://curl.haxx.se/ca/cacert.pemからcacert.pemファイルを使用しています - このデータは更新またはリフレッシュする必要がある場合には何らかの形でこの日付のファイルを使用していますが、それはまだ最新のようです:

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

これは私のウェブ開発の特典ではありませんが、だから私はここで何が起こっているのかをトラブルシューティングする方法がわからない。私の最初の考えは、何かサーバ側でなければならないということです。なぜなら、私は週末にローカルに変更を加えていないからです。しかし、誰かが私を正しい方向に向けることができれば、

ありがとう!

+1

行いますサーバーへのコマンドラインアクセスを持っていますか?もしそうなら、このコマンドを試してみてください 'openssl s_client -connect url.com:443' – Machavity

+0

リモートサイトが最近新しい証明書をインストールした可能性があります。日付と発行者が変更されたかどうかを確認するには、ブラウザを使用して証明書を確認してください。 – drew010

+0

@Machavity私はWindowsマシンを使っています - あなたは 'コマンドラインアクセス'で何を意味するのか分かりません - Windowsの 'cmd'でコマンドを試しました。コマンドではありません。 –

答えて

1

ダウンロードhttps://curl.haxx.se/ca/cacert.pemとssl.txtする名前を変更し、あなたが試すことができ

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

男カール状態:

-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