Php 如果不禁用SSL,代码将无法工作

Php 如果不禁用SSL,代码将无法工作,php,curl,ssl,Php,Curl,Ssl,请查看此代码: <?php $url = "the_source_url"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $result = curl_exec($ch); print_r($result); ?> 我的

请查看此代码:

<?php
$url = "the_source_url";  
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$result = curl_exec($ch);
print_r($result);
?>

我的Android应用程序可以访问此页面,从某些来源获取日期。
url
返回一个json数据,我将其打印回来,然后在我的应用程序中处理数据并显示它。这对我来说现在很好(我还在测试阶段)

我读了进去,所以禁用
SSL
(我在第6行中这样做了)是有风险的,不建议这样做。但是,除非禁用脚本,否则无法使其工作


如何在不禁用SSL的情况下使其工作?或者如何消除风险?

您需要添加选项并将其设置为
false

curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
这将禁用SSL主机验证,以便您可以访问使用自签名证书的主机。如果主机具有有效的证书,则检查@Baba的答案

安全考虑:


连接是加密的,不能那么容易被嗅探到。但是您不能确保服务器就是服务器。所以黑客可以通过中间人攻击来嗅探交通。如果你想确定你必须去“巴巴斯方式,并从服务器导入证书

< p>禁用证书会使你容易受到中间人攻击,你可以下载使用证书

curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt ($ch, CURLOPT_CAINFO, "PATH_TO_CERTIFICATE/cert.pem");
要获得证书,请遵循本指南

然后单击“查看证书”:

打开证书页面的“详细信息”选项卡,选择层次结构顶部的证书。这是CA证书

然后单击“导出”,并将CA证书保存到所选位置,确保选择X.509证书(PEM)作为保存类型/格式


这会做什么?禁用SSL主机验证,以便您可以访问没有签名证书的主机。请参阅手册,我已经链接了它,
CURLOPT\u SSL\u VERIFYPEER
不就是这么做的吗?我认为这在安全方面是不安全的?我使用的是Google Places API。我找不到它的证书!然后使用它…非常有用的链接。谢谢