【问题标题】:Shopify PHP with SSL certificate: where do I set USE_SSL_PEM?Shopify PHP 与 SSL 证书:我在哪里设置 USE_SSL_PEM?
【发布时间】:2012-07-04 04:12:06
【问题描述】:

在此处使用 Shopify 的第一步...

我在带有 cURL 7.24 的 windows 7 机器上运行 PHP 5.4 和 apache 2.2。我正在尝试使用使用 ohShopify PHP 适配器的示例应用程序 (https://github.com/cmcdonaldca/ohShopify-Sample-App),但是...

在我允许应用程序访问商店(位于https://xxxxxx.myshopify.com)后,我收到“SSL 证书问题,验证 CA 证书是否正常”错误。 PHP API FAQ - Q2 (http://wiki.shopify.com/PHP_API_FAQ) 中提到了这个问题,并提供了一个可能的解决方案。但我不明白在哪里“在您的配置中将 USE_SSL_PEM 设置为 true”。这是什么配置? PHP.ini ?卷曲_?只是在php代码中定义它?我已经在 config_lib.php 文件中的 php 代码中进行了尝试,该文件是示例应用程序的一部分,如下所示:

define('USE_SSL_PEM',true);

但这不起作用..搜索示例应用程序文件显示没有任何东西使用它...所以我一定是在错误的地方。

FAQ 的第二部分是在 .php 代码中定义“CA_FILE”。我认为我可以接受,因为我已经导出了 myshopify.com 证书并且它似乎是有效的。我使用以下方法将其从 .cer 转换为 .pem:

openssl x509 -inform DES -in ie_shopify.cer -out shopify.pem -text

然后在config_lib.php文件中:

define('CA_FILE', getcwd() . '\\shopify.pem');

我已确认 CA_FILE 确实以绝对路径正确指向文件。

我也尝试过这里的建议 (http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/)通过在被调用但结果相同的 ohShopify curlSetopts() 函数中设置 CURLOPT_CAINFO。

并且(如前所述)我发现了如何从这里 (http://curl.haxx.se/docs/sslcerts.html) 将 .cer 转换为 .pem

谢谢,

尼尔

更新:已解决!我没有信任我首先使用 Internet Explorer 作为 .cer 文件提取然后使用 openssl 转换为 .pem 文件的 .pem 文件,而是:

curl.haxx.se/docs/caextract.html 

...并获取了 Mozilla CA 证书包 - 这已经是 .pem 格式。我将 cacert.pem 文件放在与另一个文件相同的目录中,并更新了 curlSetopts() 函数中的 CURLOPT_CAINFO 行(我之前在 shopify.php 中添加了这一行)。和之前一样,我直接指向文件:

curl_setopt($ch, CURLOPT_CAINFO, 'D:/apache/htdocs/cacert.pem');

而且它有效。继续前进。

更新 2:只是为了澄清一下,因为我最初在 Shopify 的 PHP API 常见问题解答中寻找解决方案(如上所述)......我不需要设置 USE_SSL_PEM 值(无论它属于哪里)或添加定义CA_FILE 代码。 unitstep.net 博客中关于 CURLOPT_CAINFO 的建议是正确的。

【问题讨论】:

    标签: php ssl-certificate shopify


    【解决方案1】:

    我找到了解决问题的方法:不出所料,.pem 文件不正确 - 正如错误消息所示。我将它完全替换为来自

    的 Mozilla CA 证书包
    http://curl.haxx.se/docs/caextract.html 
    

    然后在 shopify.php 文件中,我在 curlSetopts() 函数中添加了以下行,使用绝对路径直接指向下载的 .pem 文件:

    curl_setopt($ch, CURLOPT_CAINFO, 'D:/apache/htdocs/cacert.pem');
    

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 1970-01-01
      • 2018-04-15
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多