如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

程序员最经常使用的curl,在php下面也是经常用的到。但是,苏南大叔友情提示您:用curl获取https的网页内容的时候,也是需要用到证书的。而这么多年,我们从来都没有察觉过任何更新证书的动作,证明这可能是有自动renew操作的。而手头的centos,却貌似有使用curl获取https的问题。

症状描述:

利用curl获取http的内容,成功。但是获取https的内容,失败。

解决方案:

首先,保证php.ini里面的openssl扩展肯定要打开,然后我们要检测一下curl组件的证书。
查看一下证书的默认位置,然后下载一下官方的最新证书。把拿到的最新证书,放到默认位置上。
重启之后,就应该修复成功了。

检测curl的证书位置的代码:

php -r "print_r(openssl_get_cert_locations());"

default_cert_file是默认位置。

php无法获得https网页内容的解决方案 - curl_https

证书的下载网址是: https://curl.haxx.se/docs/caextract.html

php无法获得https网页内容的解决方案 - curl_https_02

不过ll一下这个证书,可以发现是个link。所以,你真正的放置证书的位置其实是有变化的。你懂的。

php无法获得https网页内容的解决方案 - curl_cert

结论

更多有关https的相关话题,请点击查看:https://newsn.net/tag/https/ .

PS一下:这个curl的官网的域名,真心耐人寻味啊......

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。