Php Can';t CURL HTTPS URL在WAMP上,但在使用BASH的远程服务器上工作

Php Can';t CURL HTTPS URL在WAMP上,但在使用BASH的远程服务器上工作,php,ssl,curl,Php,Ssl,Curl,这是我在远程服务器上使用的BASH命令- curl -i -H "Content-Type: application/json" -H "Authorization: USERNAME:PASSWORD" "https://api7.publicaster.com/Rest/Ping.svc/?format=json" 下面是我在WAMP本地测试环境中运行的PHP脚本上的代码,以请求相同的信息 header("Content-Type: application/json"); $encrypt

这是我在远程服务器上使用的BASH命令-

curl -i -H "Content-Type: application/json" -H "Authorization: USERNAME:PASSWORD" "https://api7.publicaster.com/Rest/Ping.svc/?format=json"
下面是我在WAMP本地测试环境中运行的PHP脚本上的代码,以请求相同的信息

header("Content-Type: application/json");
$encrypted_account_id = 'USERNAME';
$api_password = 'PASSWORD';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://api7.publicaster.com/Rest/Ping.svc/?format=json");
$headers = array();
$headers[] = 'Content-type: application/json';
$headers[] = 'Authorization: $encrypted_account_id:$api_password';
curl_setopt($ch, CURLOPT_HEADER, $headers);

$server_output = curl_exec($ch);
curl_close($ch);
print_r($server_output);
如果在我的PHP脚本上请求HTTP站点,那么它将返回-

HTTP/1.1 401 Unauthorized
Cache-Control: private
如果在我的PHP脚本中请求HTTPS站点,那么它只返回空白。我有一个自签名SSL证书,并且启用了SSL,我可以访问我的WAMP服务器的HTTPS部分,但是我收到了一个警告

我不知道这是我的代码还是我的WAMP服务器的问题。有什么想法吗

如果我在代码中添加以下内容并尝试卷曲HTTPS地址,我至少会收到一个响应,但这是未经授权的CC:private错误-

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

我想我找到了答案,问题是您的curl请求无法验证ssl对等方。Windows不会自动拥有CA证书来进行验证

下面是我通过curl为wamp修复的https请求所做的工作。 在此处下载cacert.pem文件,并将其放在您的PHP文件夹中,我的文件夹位于:
C:\wamp\bin\php\php5.5.12

现在打开php.ini文件,找到以
;curl.cainfo=

取消注释该行“删除前面的;并添加cacert.pem文件的绝对路径”。我的看起来像这样:
curl.cainfo=C:\wamp\bin\php\php5.5.12\cacert.pem


现在重新启动wamp,瞧!我可以通过wamp上的curl愉快地打开https协议。

我想我找到了答案,问题是您的curl请求无法验证ssl对等方。Windows不会自动拥有CA证书来进行验证

下面是我通过curl为wamp修复的https请求所做的工作。 在此处下载cacert.pem文件,并将其放在您的PHP文件夹中,我的文件夹位于:
C:\wamp\bin\php\php5.5.12

现在打开php.ini文件,找到以
;curl.cainfo=

取消注释该行“删除前面的;并添加cacert.pem文件的绝对路径”。我的看起来像这样:
curl.cainfo=C:\wamp\bin\php\php5.5.12\cacert.pem


现在重新启动wamp,瞧!我可以很高兴地通过wamp上的curl打开https协议。

想知道您是否找到了解决此问题的方法。我也面临着同样的问题。我想知道你是否找到了解决这个问题的办法。我面临着完全相同的问题。