美文网首页
PHP7 certificate verify failed

PHP7 certificate verify failed

作者: 小胖扁 | 来源:发表于2019-05-20 16:43 被阅读0次

    SSL错误

    现象

    升级PHP7之后,下面代码执行中产生了错误

    <?php
        file_get_contents("https://pic.qingting.fm/2015/0703/20150703103711316.jpg!medium");
    

    错误:

    PHP Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:

    error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed...

    检查

    检查了openssl版本,一致

    [chenpeiyuan@xxx ~]$ openssl version
    OpenSSL 1.0.1e-fips 11 Feb 2013
    

    检查PHP默认使用的证书位置

    <?php
        var_dump(openssl_get_cert_locations());
    

    执行结果如下,default_cert_file位置为/usr/local/openssl/ssl/cert.pem,实际检查发现已经没有这个证书了

    array(8) {
      ["default_cert_file"]=>
      string(31) "/usr/local/openssl/ssl/cert.pem"
      ["default_cert_file_env"]=>
      string(13) "SSL_CERT_FILE"
      ["default_cert_dir"]=>
      string(28) "/usr/local/openssl/ssl/certs"
      ["default_cert_dir_env"]=>
      string(12) "SSL_CERT_DIR"
      ["default_private_dir"]=>
      string(30) "/usr/local/openssl/ssl/private"
      ["default_default_cert_area"]=>
      string(22) "/usr/local/openssl/ssl"
      ["ini_cafile"]=>
      string(0) ""
      ["ini_capath"]=>
      string(0) ""
    }
    

    可以使用curl的证书

    curl官方证书

    下载之后放在/usr/local/openssl/ssl/cert.pem,重试最初的PHP测试代码可以正确执行

    参考

    PHP Manual

    相关文章

      网友评论

          本文标题:PHP7 certificate verify failed

          本文链接:https://www.haomeiwen.com/subject/ooakzqtx.html