下载搜学网app
查学校 查学区 查辅导 查饭桌 查询中考数据
logo 点击咨询

php与ssl证书之间的纠结问题


日前部署了一个视频站点,环境为Ubuntu14.04 LTS,apache2+php7.2。

起初是部署了普通的http站点,后来申请了一个ssl域名证书,打算升级为https站点,问题就来了。

基本的https配置的过程就不再赘述,网上的教程多的是,ssl证书是通过阿里云申请的,下载了以后上传到服务器即可。

单说配置完毕以后,通过https://domainname可以访问站点页面了,登录注销查看数据也很正常,单单一个地方报错,错误提示是:

OpenSSL Error messages: error:1416F086,

google 了半天,这个错误的意思是,php的安全机制在ssl环境下工作时,会对权限进行验证。

碰到这个问题的人不在少数,中文的英文的解决方法一大堆,大体上有这么集中思路:

(1)更新php对应的cert.pem文件

(2)设置openssl的cafile。

但是不知道是版本差异还是系统差异,我试验了一下都不管用。

然后出现了第三种解决方法:将verify_peer设置为false。

于是,最高效的方式如下:

$stream_opts = [
    "ssl" => [
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ]];  $response = file_get_contents("https://www.example.com",
               false, stream_context_create($stream_opts));

就在file_get_contents 执行的时候,将verify_peer设置为false。



评论



匿名用户:讲的很透彻
2019-03-05 09:40:00