Php 当没有可用的https版本时,ssl_验证_结果为0
我有一个使用http而不是https的站点。当我现在使用Php 当没有可用的https版本时,ssl_验证_结果为0,php,curl,ssl,Php,Curl,Ssl,我有一个使用http而不是https的站点。当我现在使用cURL时,http版本会得到http\u code=200。当我现在使用https版本时,它会得到0,这没关系,因为该站点没有https版本。但问题是,ssl_Verify_结果为0,这意味着: 手术是成功的 资料来源: 这是为什么?这确实是openSSL中的一个错误。此功能仅在以下情况下有用: curl\u setopt($ch,CURLOPT\u SSL\u VERIFYPEER,true) 另见: 如果未提供对等证书,则返回的结果代
cURL
时,http版本会得到http\u code=200
。当我现在使用https版本时,它会得到0
,这没关系,因为该站点没有https版本。但问题是,ssl_Verify_结果为0,这意味着:
手术是成功的
资料来源:
这是为什么?这确实是openSSL中的一个错误。此功能仅在以下情况下有用:
curl\u setopt($ch,CURLOPT\u SSL\u VERIFYPEER,true)代码>
另见:
如果未提供对等证书,则返回的结果代码为X509\u V\u OK。这是因为没有发生验证错误,但并不表示成功。SSL\u get\u verify\u result()仅在与SSL\u get\u peer\u证书(3)连接时有用。
请记住,当您希望cURL连接到SSL并验证证书时,首先必须下载CA证书并将其保存到应用程序中(firefox可以这样做),并在cURL调用中引用它。例如:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/CACertificats/AddTrustExternalCARoot.crt");
关于这方面的小教程:当然,如果你告诉我为什么需要代码,我会的?我在php中使用简单的curl请求。只需将基本方法与这些附加选项一起使用returntrasnfer=>true | verifypeer=>false | followlocation=>true
其余就是基本方法。i、 e.:curl\u init、curl\u execute等“…不成功”-我不确定这是否正确ssl\u-verify\u-result
来自OpenSSL库,我相信它的X509\u-OK
。根据OpenSSL,“验证成功或未提供对等证书”。它看起来像是卷曲中的一个潜在的虫子。cURL可能应该表示没有SSL/TLS,而不是表示成功(因为cURL是在SSL库之上分层的)。@jww显然是这样。它在doc中也指出,如果没有提供对等证书,则返回的结果代码为X509_V_OK。这是因为没有发生验证错误,但并不表示成功。SSL\u get\u verify\u result()仅在与SSL\u get\u peer\u证书(3)连接时有用。
。