2016-11-25 9 views
2

IISとApache Web Serverは、Windows 10にPHPとカールを設定しています。次のコードは正常に動作します。IISまたはApache WebサーバーのPHPカールによる認証

<?php 

    $url = "http://domain.com"; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //Timeout after 30 seconds 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //Get status code 

    $response = curl_exec($ch); 

    curl_close($ch); 

    echo $response; 

?> 

認証を追加すると機能しません。

<?php 

    $username = "username"; 
    $password = "password"; 
    $url = "https://domain.com/api/v2/orders/count"; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //Timeout after 30 seconds 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
    curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); 

    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //Get status code 

    $response = curl_exec($ch); 

    curl_close($ch); 

    echo $response; 

?> 

このコードは、GoDaddyサーバーで実行するとうまく動作します。

コードがhttp://localhost/test.php
に位置しています私は7.51.0
PHP 7.0.13 NTSとカールを持っているIISは、CA証明書が設定されていなかったのFastCGI

答えて

0

として設定されています。

  • ゴーエキストラ\ [pathToYourPHP]に\ SSL
  • はコピーcacert.pemの
  • CA certificates extracted from Mozilla
  • クリックしcacert.pemの
  • ゴーというファイルの内容を作成し、あなたにそれを置きますphp.iniでこのcacert.pem
  • は、= "[pathToYourPHP] \エクストラ\ SSL \ cacert.pemの"
をcurl.cainfoするパスを設定しました

注:curl_setopt($ ch、CURLOPT_SSL_VERIFYPEER、FALSE)を追加することでバイパスすることもできます

関連する問題