Laravel在CentOS7的DigitalOcean Droplet加载客户端证书报错-8018
解决Laravel在CentOS 7上加载客户端证书报错
sec_error_unknown_pkcs11_error 排查与修复步骤
调整证书文件权限与归属
CentOS上Web服务进程(如nginx、apache或php-fpm)需要具备证书文件的读取权限,执行以下命令修正:# 设置证书文件为可读权限 chmod 644 /绝对路径/cert.pem # 将文件所属用户改为Web服务运行用户(以nginx为例) chown nginx:nginx /绝对路径/cert.pem验证证书文件完整性
上传过程中可能出现文件损坏,用OpenSSL命令检查证书格式是否正常:openssl x509 -in /绝对路径/cert.pem -text -noout若命令报错,说明证书文件已损坏,需以二进制模式重新上传本地的cert.pem文件。
禁用PKCS#11加密模块
该错误多与系统PKCS#11加密模块冲突,在Laravel的HTTP客户端配置中添加禁用选项:$client = new \GuzzleHttp\Client([ 'cert' => '/绝对路径/cert.pem', // 若证书关联私钥,补充私钥路径 // 'ssl_key' => '/绝对路径/your-private-key.pem', 'curl' => [ CURLOPT_SSLENGINE => '', CURLOPT_SSLENGINE_DEFAULT => false, ], ]);更新系统CA证书包
CentOS 7默认CA证书可能不全,执行以下命令更新系统根证书:yum install -y ca-certificates update-ca-trust extract
内容的提问来源于stack exchange,提问作者ashik ck
相关产品推荐
相关产品推荐

