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

Oracle APEX低代码:调用API遇ORA-29024证书验证失败问题咨询

ORA-29024证书验证失败:原因及解决办法

错误原因

  • Oracle数据库/APEX环境未信任API服务器的SSL证书:Postman会自动信任主流CA颁发的证书,但Oracle需要手动将对应根证书或中间证书导入数据库钱包才能通过验证。
  • API使用自签名证书:Postman可手动添加信任这类证书,但Oracle环境未配置信任时就会触发验证失败。
  • 数据库钱包配置异常:钱包路径错误、权限设置不当,或者钱包中缺少必要的证书链。
  • 证书过期或域名不匹配:API证书已过期,或证书标注的域名与调用的API域名不一致,Oracle的验证逻辑比Postman更严格,会直接报错。

解决步骤

1. 获取API对应的证书

  • 若为公共CA颁发的证书:从CA官方网站下载根CA证书,或通过浏览器访问API地址导出完整的证书链。
  • 若为自签名证书:直接从API服务器导出该自签名证书文件。

2. 将证书导入Oracle数据库钱包

使用orapki命令行工具操作(也可使用Oracle Wallet Manager图形工具):

  1. 未创建钱包时先新建:
    orapki wallet create -wallet /自定义钱包路径 -pwd 你的钱包密码 -auto_login
    
  2. 导入证书到钱包:
    orapki wallet add -wallet /自定义钱包路径 -trusted_cert -cert /你的证书文件路径.crt -pwd 你的钱包密码
    
  3. 验证钱包内的证书:
    orapki wallet display -wallet /自定义钱包路径
    

3. 配置APEX或数据库使用该钱包

  • 在APEX的REST数据源配置页面,找到「SSL Wallet」选项,填入钱包的绝对路径和密码即可。
  • 若APEX底层依赖UTL_HTTP,也可在数据库层面执行配置:
    BEGIN
      UTL_HTTP.SET_WALLET('file:/自定义钱包路径', '你的钱包密码');
    END;
    /
    

4. 测试环境临时绕过验证(生产环境禁止)

仅用于测试阶段快速验证API可用性,此操作会带来严重安全风险,生产环境绝对不能使用:

BEGIN
  UTL_HTTP.SET_WALLET('');
  UTL_HTTP.SET_TRUST_CERTIFICATES(TRUE);
END;
/

5. 检查证书细节

  • 确认证书的「Subject Alternative Name」字段包含你调用的API域名,避免域名不匹配问题。
  • 确保导入的是完整证书链(根CA证书+中间证书),缺失中间证书也会导致验证失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:19:57