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

配置Cielo支付网关SSL Certificate遇阻:无法获取本地签发证书

解决Cielo支付网关出站证书信任问题

我来帮你理清这个问题——你之前接触的是网站入站连接的SSL证书配置(用户访问你的网站时的证书验证),但现在要处理的是服务器出站连接的证书信任(你的服务器调用Cielo API时,需要验证对方服务器的证书合法性),这是两个不同的场景,所以之前的经验没法直接套用。

先一步步拆解你的疑问:

为什么会出现Verify return code: 20 (unable to get local issuer certificate)?

这个错误的核心是:你的服务器系统默认的信任根证书库中,没有包含Cielo API证书链的根CA机构证书。当openssl尝试验证Cielo服务器的证书时,找不到能信任的签发源头,所以返回了这个错误。

关于Cielo要求的三个证书:必须安装

Cielo提供的三个证书是完整的CA信任链文件,你的服务器必须信任这些证书,才能正常完成与Cielo API的双向身份验证,所以必须安装到服务器的系统信任存储中,不是随便把文件扔到/etc/ssl/certs/就生效的。

正确的安装步骤(针对Debian/Ubuntu类系统,你使用的/etc/ssl/certs/属于这类系统的目录)

  1. 确认证书格式:先检查三个证书是否为PEM格式(后缀通常是.pem或.crt),如果是DER格式(比如.cer),需要先转换为PEM:
    openssl x509 -inform der -in 你的证书文件.cer -out 转换后的证书文件.crt
    
  2. 放置证书到指定目录:把转换后的.crt证书文件放到/usr/local/share/ca-certificates/目录下,这个目录是系统专门用于存放自定义信任证书的路径。
  3. 更新系统信任链:运行以下命令,系统会自动将新证书加入全局信任库,并生成对应的哈希链接到/etc/ssl/certs/目录:
    sudo update-ca-certificates
    
  4. 验证配置是否成功:重新运行你的openssl命令:
    openssl s_client -connect api.cieloecommerce.cielo.com.br:443
    
    如果输出末尾显示Verify return code: 0 (ok),就说明信任链配置正确了。

额外注意事项

如果你的支付处理应用有自己独立的信任存储(比如Java应用的keystore),那除了系统级的信任配置,还需要把这些证书导入到应用专属的信任库中。以Java应用为例,可以用keytool命令导入:

keytool -importcert -file /usr/local/share/ca-certificates/你的证书.crt -alias cielo-ca -keystore $JAVA_HOME/jre/lib/security/cacerts

(默认密码为changeit,请根据你的应用实际路径调整参数)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:34:03