从运行PHP的App Service调用Azure表存储时出现cURL错误60

时间:2017-04-26 10:23:13

标签: php azure ssl curl

我正在使用此SDK: https://github.com/Azure/azure-sdk-for-php

这个插件: https://github.com/cocteau666/php-azure-session

在Azure应用服务中运行的基于PHP的Wordpress站点的Azure表存储中处理会话。

从最后一个链接运行代码时,出现以下错误:

  

cURL错误60:SSL证书问题:无法获取本地颁发者   证书(见http://curl.haxx.se/libcurl/c/libcurl-errors.html

我没有直接使用cURL,我只是通过 azure-sdk-for-php 中的代码使用它,我无法更改该代码。

那么我如何确定哪个证书是问题,然后全局定义它以便它可以工作。

我之前已经尝试过运行此代码并且它不会抛出异常,但它也没有任何区别。我不知道我是否使用了正确的.pem,或者这是否会影响全局的cURL。

curl_setopt($process, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
curl_setopt($process, CURLOPT_SSL_VERIFYPEER, true);

1 个答案:

答案 0 :(得分:2)

我找到了解决方案here

(虽然我在大部分步骤中使用了FTP)

  1. 在portal.azure.com
  2. 中打开网络应用
  3. 转到“应用程序设置”并在“应用程序设置”部分中添加此值:PHP_INI_SCAN_DIR = d:\ home \ site \ ini
  4. 打开网络应用的scm面板,例如 - https://osi-bout-test.scm.azurewebsites.net/
  5. 转到调试控制台> CMD
  6. 打开"网站"夹
  7. 上传" cacert.pem"文件(从这里下载:http://curl.haxx.se/docs/caextract.html
  8. 创建/打开" ini"夹
  9. 使用名称" settings.ini"
  10. 创建/打开文件
  11. 将此行放在文件中:curl.cainfo =" D:\ home \ site \ cacert.pem"
  12. 返回portal.azure.com中的应用程序并停止然后START。