使用通配符证书从oracle utl_http调用https://www.facebook.com
我们正在使用oracle 12.1.0.1.0.
我们一直通过utl_http向多个服务发出https调用,没有任何问题. 最近,我们在https中调用facebook.com网址时遇到了一个我们无法解决的问题. 我们得到的错误代码问题是: ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP",line 1130 ORA-28750: unknown error ORA-06512: at "SYS.UTL_HTTP",line 1130 发出utl_http.begin_request的pl / sql行发生错误. 我的问题是:任何人都可以复制这个问题吗?有没有人去过那里找到解决方案?任何输入都表示赞赏. 我包括两个例子:一个是对redhat.com域的调用,它可以正常工作. 目标页面:https://www.redhat.com/en/about – redhat页面的证书链 GTE CyberTrus Global Root Baltimore CyberTrust Root <=== rh_01.crt Cybertrust Public SureServer SV CA <=== rh_02.crt *.redhat.com – 钱包包含箭头标记的证书.我们不包含* .redhat.com证书,因为只有受信任的证书才能进入钱包. – 以下是redhat.com的钱包是如何创建的. orapki wallet create -wallet /dir1/rh -pwd walletpassword -auto_login orapki wallet add -wallet /dir1/rh -trusted_cert -cert "/dir1/rh/rh_01.crt" -pwd walletpassword orapki wallet add -wallet /dir1/rh -trusted_cert -cert "/dir1/rh/rh_02.crt" -pwd walletpassword – 这是进行https调用的代码. declare wrequest utl_http.req; wwallet_location varchar2(400) := 'file:/dir1/rh'; wwallet_password varchar2(400) := 'walletpassword'; wurl varchar2(400) := 'https://www.redhat.com/en/about'; begin utl_http.set_wallet(wwallet_location,wwallet_password); wrequest := utl_http.begin_request(wurl,'GET',utl_http.http_version_1_1); end; – 这很好用 =============================================== 目标页面:https://www.facebook.com/login/identify?ctx=recover – Facebook页面的证书链 GTE CyberTrus Global Root Baltimore CyberTrust Root <=== fc01_.crt Digicert High Assurance EV Root CA <=== fc02_.crt Digicert High Assurance CA-3 <=== fc03_.crt *.facebook.com – 钱包包含箭头标记的证书 – 这是facebook的钱包是如何创建的. orapki wallet create -wallet /dir1/fc -pwd walletpassword -auto_login orapki wallet add -wallet /dir1/fc -trusted_cert -cert "/dir1/fc/fc_01.crt" -pwd walletpassword orapki wallet add -wallet /dir1/fc -trusted_cert -cert "/dir1/fc/fc_02.crt" -pwd walletpassword orapki wallet add -wallet /dir1/fc -trusted_cert -cert "/dir1/fc/fc_03.crt" -pwd walletpassword – 这是进行https调用的代码. declare wrequest utl_http.req; wwallet_location varchar2(400) := 'file:/dir1/fc'; wwallet_password varchar2(400) := 'walletpassword'; wurl varchar2(400) := 'https://www.facebook.com/login/identify?ctx=recover'; begin utl_http.set_wallet(wwallet_location,utl_http.http_version_1_1); end; – 此代码给出错误 ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP",line 1130 你能复制这个错误吗?还是只是我? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |