You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:15:44