自治数据库调用UTL_HTTP.REQUEST出现ORA-29024证书验证失败问题
SELECT UTL_HTTP.REQUEST('https://www.google.com') FROM DUAL;
执行上述语句时抛出的完整错误如下:
ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1620 ORA-29024: Certificate validation failure ORA-06512: at "SYS.UTL_HTTP", line 380 ORA-06512: at "SYS.UTL_HTTP", line 1560 ORA-06512: at line 1
报错原因说明
ORA-29024本质是HTTPS请求过程中SSL证书验证失败,虽然Oracle自治数据库官方支持UTL_HTTP包,但要正常访问公网HTTPS站点需要满足额外配置要求,触发报错的常见原因如下:
- 缺少站点SSL证书信任配置
自治数据库默认内置的系统钱包仅预装了Oracle云服务相关的CA根证书,公网第三方站点(如google.com)的SSL证书签发CA默认不在信任列表中,UTL_HTTP校验站点证书信任链失败就会抛出该错误,需要手动将目标站点的完整证书链导入到自治数据库的用户钱包中。 - 未配置访问控制列表(ACL)权限
默认情况下数据库用户没有调用UTL_HTTP访问外部网络的权限,需要管理员为当前执行用户配置对应目标站点、443端口的ACL访问权限,权限不足也会触发相关网络校验错误。 - 公网访问链路不通
如果你的自治数据库采用私有端点部署,没有配置互联网网关、NAT网关打通公网出口,HTTPS请求无法到达目标站点,SSL握手阶段异常也会抛出证书验证相关报错。
内容的提问来源于stack exchange,提问作者ctuzla
相关产品推荐
相关产品推荐

