thinkphp小程序申请退款,证书放网站外的目录使用绝对路径报错No required SSL certificate

thinkphp小程序申请退款,如果证书放网站外的目录,例如证书放在服务器根目录下/cert/cert.pem, 使用绝对路径/cert/cert.pem,

curl_setopt($ch,CURLOPT_SSLCERT,'/cert/cert.pem');

会报错No required SSL certificate was sent。

即使修改目录所有者为www,或者root,都不行。
chown -R www:www /cert

如果把证书放在网站根目录/www/domain/下,用相对路径abc/cert.pem 则退款成功,此时实际绝对路径为/www/domain/abc/cert.pem。

curl_setopt($ch,CURLOPT_SSLCERT,'abc/cert.pem');

似乎这样不安全。
问:我想把证书放在网站外的目录,应该怎么操作?问题出在哪?

阅读 3k
1 个回答

在根目录下的 .user.ini 中配置一下 open_basedir,把证书目录放进去
这个文件如果已经存在的话,默认是不能编辑的,需要先执行一下 chattr -i .user.ini ,然后再编辑,多个路径使用 : 分隔,修改后保存,再执行 chattr +i .user.ini,重启一下 FPM

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题