Joh*_*ohn 8 php ssl curl certificate verify
许多人通过Facebook身份验证获得的错误是:
CurlException: 60: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Run Code Online (Sandbox Code Playgroud)
我能找到的唯一信息建议添加以下代码行来卷曲:
$opts[CURLOPT_SSL_VERIFYPEER] = false;
$opts[CURLOPT_SSL_VERIFYHOST] = 2;
Run Code Online (Sandbox Code Playgroud)
我知道这有效,但这里发生了什么?是不是可以更改任何服务器设置/配置而不是黑客攻击facebook.php.
sha*_*mar 17
以下代码告诉cURL不验证安全证书是否正确.因此,错误消失了.
$opts[CURLOPT_SSL_VERIFYPEER] = false;
$opts[CURLOPT_SSL_VERIFYHOST] = 2;
Run Code Online (Sandbox Code Playgroud)
使用SSL连接到远程服务器时,其证书可能无效,已过期或未经过认可的CA签名.cURL通常会检查它.
CURLOPT_SSL_VERIFYHOST:
CURLOPT_SSL_VERIFYPEER: FALSE停止CURL验证对等方的证书.可以使用CURLOPT_CAINFO选项指定要验证的备用证书,也可以使用该选项指定证书目录CURLOPT_CAPATH
.如果禁用CURLOPT_SSL_VERIFYPEER,则CURLOPT_SSL_VERIFYHOST也可能需要为TRUE或FALSE(默认为2).
为了正确验证,我们需要验证提交给我们的证书是否真实.我们通过将它与我们合理*信任的证书进行比较来做到这一点.
如果远程资源受到Verisign,GeoTrust等主要CA之一颁发的证书的保护,您可以安全地与Mozilla的CA证书包进行比较,您可以从http://curl.haxx.se/docs/caextract获取该证书包.html的
将文件cacert.pem保存在服务器中的某个位置,并在脚本中设置以下选项.
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt ($ch, CURLOPT_CAINFO, "pathto/cacert.pem");
Run Code Online (Sandbox Code Playgroud)
如果要连接到受自签名证书保护的资源,您只需获取PEM格式的证书副本,并将其附加到上一段的cacert.pem.
归档时间: |
|
查看次数: |
7830 次 |
最近记录: |