You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决Opayo Live环境SSL更新引发的OpenSSL证书验证错误

解决Opayo Live SSL证书验证失败问题

针对你遇到的SSL操作失败,错误代码1(对应OpenSSL错误error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed),结合Opayo的公告和实际对接经验,给你明确的解决方案:

一、选择正确的证书下载

你在登录页面看到的3张证书里,需要下载根证书(Root Certificate)——也就是证书链最顶端的那一张,通常名称会包含类似GlobalSign Root CA这类顶级CA机构标识(Opayo Live环境的证书链目前基于GlobalSign根体系)。

  • 快速区分方法:查看证书详情的「颁发者」和「使用者」字段,根证书的这两个字段是同一个顶级CA机构,没有上级颁发者。

二、下载后的操作步骤

根据你使用的技术栈不同,操作略有区别,下面覆盖几种常见场景:

1. PHP环境(cURL/OpenSSL扩展)

  • 先将下载的根证书保存为.pem格式文件(比如命名为opayo_root_ca.pem
  • 在代码中指定证书路径来验证SSL:
    // cURL示例
    $ch = curl_init('https://live.sagepay.com:443/gateway/service/vspdirect-register.vsp');
    curl_setopt($ch, CURLOPT_CAINFO, '/your/server/path/opayo_root_ca.pem');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
    $response = curl_exec($ch);
    
    // OpenSSL流上下文示例
    $sslContext = stream_context_create([
        'ssl' => [
            'cafile' => '/your/server/path/opayo_root_ca.pem',
            'verify_peer' => true,
            'verify_depth' => 5
        ]
    ]);
    $stream = fopen('https://live.sagepay.com:443/gateway/service/vspdirect-register.vsp', 'r', false, $sslContext);
    
  • 也可以直接更新服务器系统级的CA证书库(比如Linux下执行sudo update-ca-certificates,Windows更新系统证书存储)

2. 服务器系统级配置

  • Linux服务器:将证书文件复制到/usr/local/share/ca-certificates/目录,然后执行:
    sudo update-ca-certificates
    
  • Windows服务器:双击证书文件,选择「安装证书」,将其导入到「受信任的根证书颁发机构」存储中

3. 其他语言/框架

核心逻辑都是让你的HTTP客户端信任这张新根证书:

  • Python(requests库):
    import requests
    resp = requests.get(
        'https://live.sagepay.com:443/gateway/service/vspdirect-register.vsp',
        verify='/your/path/opayo_root_ca.pem'
    )
    
  • .NET:将证书添加到项目证书存储,或在HttpClient配置中指定自定义证书验证逻辑

补充说明

Opayo这次更新是因为替换了旧的根证书,原有的根证书已从信任链中移除,所以必须使用新根证书来建立合法的SSL信任关系。如果还是拿不准哪张是根证书,直接选证书链列表里最顶部的那一条下载即可。

参考Opayo官方公告:我们的开发团队已更新Live环境中的安全证书,部分商家可能会遇到相关SSL证书问题,需获取最新根证书以解决。

内容的提问来源于stack exchange,提问作者Jon

火山引擎 最新活动