如果收到此错误, 则该消息是非常特定的, 并且当你尝试从不安全的起点访问受保护的资源时, 需要向你的PHP发行版提供有效的证书。
如果你在项目本地工作, 此错误很常见, 你可以阅读以下文章, 以了解如何在Wampp和Xampp中为你的PHP发行版实现有效的SSL证书。
但是, 如果你急于在本地工作, 则可以仅在不休息的情况下禁用对等方的验证, 以忽略此警告。
在执行主代码之前, 将verifyPeer属性设置为false:
注意:在测试之前, 请阅读”
为什么会发生”
部分及其带来的风险。
<
?php// Disables SSL cert validation temporaryUnirest\Request::verifyPeer(false);
// Then continue with your work as usual ...Unirest\Request::get('https://domainwithhttpsconnection/api/dothis');
为什么会这样libcurl默认执行对等SSL证书验证。这可以通过使用CA证书存储区来完成, SSL库可以使用该证书存储区来确保对等方的服务器证书有效。
如果使用存储中存在的CA签名的证书与HTTPS, FTPS或其他使用TLS的服务器进行通信, 则可以确保远程服务器确实是它声称的服务器。
如前所述, 有两种解决方案:
- 告诉cURL不验证对等方。使用libcurl可以使用curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE)禁用此功能;
使用curl命令行工具, 可以使用-k /-insecure禁用它。
- 获取可以验证远程服务器的CA证书, 并在连接时使用正确的选项指出此CA证书以进行验证。对于libcurl黑客:curl_easy_setopt(curl, CURLOPT_CAPATH, capath);
使用curl命令行工具:– cacert [file]。
【Unirest PHP SSL证书问题(无法获取本地颁发者证书)】你应该使用选项2, 因为那是确保你连接到安全服务器的选项。
推荐阅读
- 如何在PHP中编写具有ANSI编码的文本文件(Western Windows-1252)
- Crud可捕获的致命错误(Entity\MyClass类的对象无法转换为字符串Symfony 3)
- 在Symfony 2和3中实现Disqus评论
- 如何使用Potrace CLI对图片中的签名进行数字化和矢量化
- 如何在Linux和Windows环境中使用PHP执行Shell命令而无需等待结果(异步)
- 如何在没有Imagick的情况下在PHP中调整图像大小并降低质量
- 如何在CSS中使用超赞的字体如医学图标
- 从zip安装android studio时,Windows 10上没有SDK
- Facebook SDK错误'必需'app_id“密钥未在配置中提供