至尊技术网 - 网页内容
type: channel
link: https://www.zzwws.cn/tag/%E7%BD%91%E9%A1%B5%E5%86%85%E5%AE%B9/
items: php curl无法获得https网页内容

php curl无法获得https网页内容
type: item
date: 2024-01-05T19:14:00+08:00
description: 程序员最经常使用的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后，就应该可以解决问题了。