• CURL SSL为6的由来


    起初,我直接用方倍工作室之前做微信接口调用时的http_request函数,发现能正常调用微信api的函数获取不了火星天气数据,
    然后又尝试用file_get_contents,仍然不行

    一直出的错就是ssl handshake timed out
    明白问题一定在ssl上,但怎么解决是个大问题。
    百度,google了各种方法都失败。
    又尝试了各种ssl的配置,还是失败。

    期间还有一个问题就是我自己的环境不行,导致一直没有找到正确的原因。走了很多弯路

    后来找到一个网站,可以检测服务器的ssl版本。
    网址为 https://www.ssllabs.com/ssltest/
    通过检测,mars.nasa.gov 官网支持的ssl协议类型如下

    TLS 1.3	No
    TLS 1.2	Yes
    TLS 1.1	No
    TLS 1.0	No
    SSL 3	No
    SSL 2	No
    

    只支持 TLS 1.2

    又查到 其对应的数字是 6

    CURL_SSLVERSION_DEFAULT (0)
    CURL_SSLVERSION_TLSv1 (1)
    CURL_SSLVERSION_SSLv2 (2)
    CURL_SSLVERSION_SSLv3 (3)
    CURL_SSLVERSION_TLSv1_0 (4)
    CURL_SSLVERSION_TLSv1_1 (5)
    CURL_SSLVERSION_TLSv1_2 (6)

    于是配置成 curl_setopt($ch, CURLOPT_SSLVERSION, 6)

    在本地环境,新浪云和阿里云上成功了。

    php版本5.3也可以,推荐本地的openssl版本太低导致不支持导致。

  • 相关阅读:
    11.分类与监督学习,朴素贝叶斯分类算法
    14 深度学习-卷积
    13-垃圾邮件分类2
    12.朴素贝叶斯-垃圾邮件分类
    9、主成分分析
    8、特征选择
    7.逻辑回归实践
    6.逻辑归回
    5.线性回归算法
    15 手写数字识别-小数据集
  • 原文地址:https://www.cnblogs.com/txw1958/p/11108378.html
Copyright © 2020-2023  润新知