悠悠楠杉
网站页面
程序员最经常使用的curl,在php下面也是经常用的到。但是,博主友情提示您:用curl获取https的网页内容的时候,也是需要用到证书的。而这么多年,估计大家从来都没有察觉过任何更新证书的动作,证明这可能是有自动renew操作的。而目前博主手头的centos系统,却存在有使用curl无法获取https内容的问题。
利用curl或者file_get_contents获取远程http的内容时,成功。但是获取https的内容时,失败。错误提示文字类似于:
SSL operation failed with code 1. OpenSSL Error messages: error:14090086: SSL routines:ssl3_get_server_certificate:certificate vertify failed
1、保证php.ini里面的openssl扩展肯定要打开。这个操作比较基础,不做赘述。
extension=openssl.so
2、查看一下openssl证书的默认位置,检测openssl的证书位置的代码:
php -r "print_r(openssl_get_cert_locations());"
default_cert_file是默认位置。
3、下载更新证书
下载网址:https://curl.haxx.se/docs/caextract.html
选择一个最新的perm证书下载即可,下载好的证书要放置在上述默认位置或者自定义好的位置,重启php后,就应该可以解决问题了。
想想你的文章写的特别好