替代使用CURLOPT_SSL_VERIFYHOST,2

时间:2013-02-23 22:55:31

标签: php ssl curl authorize.net

我正在使用John Conde编写的auth.net XML类http://www.johnconde.net/blog/tutorial-integrate-authorize-net-xml-api-universal-php-class/。它有两行。

curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($this->ch, CURLOPT_CAINFO, dirname(__FILE__) . '/ssl/cert.pem');

我可以用

替换它吗?
curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl,CURLOPT_CAINFO, NULL);
curl_easy_setopt(curl,CURLOPT_CAPATH, NULL);

我可能无法获取.pem文件或我需要创建它的信息。这种替代方案是否同样安全?

1 个答案:

答案 0 :(得分:1)

  

这种替代方案是否同样安全?

不,禁用CURLOPT_SSL_VERIFYHOSTCURLOPT_SSL_VERIFYPEER会导致可能的MITM攻击(请参阅this answer)。

  

我可能无法获取.pem文件或我需要创建的信息

创建它所需的信息最终是您的判断,选择您想要信任的CA.浏览器和操作系统倾向于为您预先选择。卷曲comes with a convenient script and CA bundle using the Firefox CA selection(此选择会偶尔更新一次)。某些Linux发行版还提供了您可以使用的默认CA捆绑包文件。