8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

连接到服务器名称时出现未知 SSL 协议错误:443

prosti 1月前

32 0

我被要求使用 php 5.2.6 实现 OIDC,但在 fetchURL:curl_setopt($ch, CURLOPT_URL $url);if (isset($this->certPath)){... 期间遇到“连接中出现未知的 SSL 协议错误”

我被要求使用 php 5.2.6 实现 OIDC,但在 fetchURL 期间遇到“连接中出现未知的 SSL 协议错误”:

curl_setopt($ch, CURLOPT_URL $url);
if (isset($this->certPath)){
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_CAINFO, $this->certPath);
}
else{
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
if (curl_exec($ch) === false{
    throw new OpenIDConnectioClientException('Curl error: ' . curl_error($ch));
}  

已搜索并尝试了以下操作,但没有帮助

  • 设置我们 IT 部门提供的 CA 文件 (cacert.pem)
  • 将 VERIFYPEER / VERIFYHOST 设置为 False
  • 使用不同的 SSLVERSION(DEFAULT / TLSv1 / SSLv2、SSLv3、TLSv1_0、TLSv1_1、TLSv1_2)
  • 设置 VERBOSE 但没有更详细的消息

目前,只有这些操作才能得到目标服务的响应:

  • 使用 php curl,将 url 的开头设置为 http 而不是 https
  • 使用 Windows curl,带参数 -k 或 --ssl_no_revoke
  • 使用 IT 提供的 cacert.pem 和 linux curl

我希望 php 使用 curl 和 CA 文件应该没问题(就像我在 linux curl 中所做的那样),有谁知道为什么不同的系统会出现不同的结果以及如何解决这个问题?非常感谢!

版本:

  • php 5.2.6 和 curl 7.16.0
  • Windows curl 8.0.1(Windows)libcurl/8.0.1 Schannel WinIDN
  • Linux curl 7.68.0(x86_64-pc-linux-gnu)libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0(+libidn2/2.2.0)libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
帖子版权声明 1、本帖标题:连接到服务器名称时出现未知 SSL 协议错误:443
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由prosti在本站《php》版块原创发布, 转载请注明出处!
最新回复 (0)
  • @NickLin:\'此外,我还感到困惑,为什么我不能使用 Windows curl 和 CA 文件(如 liunx)并获得正确的响应,Linux curl 中的 OpenSSL 是原因吗?\' - 您在 Windows 上使用的 curl 使用 SChannel 而不是 OpenSSL 作为 TLS 库,因此需要您设置在 Windows 信任存储中获得的证书,而不是在命令行中提供它。是的,所有这些不同的 TLS 库及其不同的行为都是一团糟。

返回
作者最近主题: