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图形工具):
- 未创建钱包时先新建:
orapki wallet create -wallet /自定义钱包路径 -pwd 你的钱包密码 -auto_login - 导入证书到钱包:
orapki wallet add -wallet /自定义钱包路径 -trusted_cert -cert /你的证书文件路径.crt -pwd 你的钱包密码 - 验证钱包内的证书:
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
相关产品推荐
相关产品推荐

