oracle – 在12c上使用utl_http&wallets:证书验证失败
希望有人可以发现我做错了什么,因为我正在秃顶.
我用过utl_http&钱包在11gR1上调用https没有太大麻烦,但是我们新的12c安装让我感到非常悲痛. 我尝试使用oracle钱包管理器和命令行导入可信证书,但没有任何成功. 我已经下载了三个必要的证书* .presstogo.com,Geotrust SSL CA& Geotrust Global CA. 我构建钱包的命令行版本如下: orapki wallet create -wallet /oracle/product/12.0.1/owm/wallets/test1237 -pwd test=1237 -auto_login orapki wallet add -wallet /oracle/product/12.0.1/owm/wallets/test1237 -trusted_cert -cert "*.presstogo.com" -pwd test=1237 orapki wallet add -wallet /oracle/product/12.0.1/owm/wallets/test1237 -trusted_cert -cert "GeoTrust SSL CA" -pwd test=1237 orapki wallet add -wallet /oracle/product/12.0.1/owm/wallets/test1237 -trusted_cert -cert "Geotrust Global CA" -pwd test=1237 orapki wallet display -wallet /oracle/product/12.0.1/owm/wallets/test1237 Oracle PKI Tool : Version 12.1.0.1 Copyright (c) 2004,2012,Oracle and/or its affiliates. All rights reserved. Requested Certificates: User Certificates: Trusted Certificates: Subject: OU=Class 3 Public Primary Certification Authority,O=VeriSign,Inc.,C=US Subject: CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions,O=GTE Corporation,C=US Subject: CN=GeoTrust SSL CA,O=GeoTrust,C=US Subject: OU=Class 2 Public Primary Certification Authority,C=US Subject: OU=Class 1 Public Primary Certification Authority,C=US Subject: CN=GeoTrust Global CA,O=GeoTrust Inc.,C=US Subject: CN=*.presstogo.com,OU=IT,O=Press to go AS,L=Oslo,ST=Norway,C=NO,SERIAL_NUM=SJYpOHrRdCDHE8KZ6dRFGMJthOjs7-v3 好的,我们来试试吧.登录sqlplus并运行以下命令: declare lo_req utl_http.req; lo_resp utl_http.resp; begin utl_http.set_detailed_excp_support ( true ); utl_http.set_wallet ( 'file:/oracle/product/12.0.1/owm/wallets/test1237','test=1237'); lo_req := utl_http.begin_request ( 'https://production.presstogo.com/mars/hello' ); lo_resp := utl_http.get_response ( lo_req ); -- A successfull request would have the status code "200". dbms_output.put_line ( lo_resp.status_code ); utl_http.end_response ( lo_resp ); exception when others then utl_http.end_response ( lo_resp ); raise; end; 宣布 * 第1行的错误: ORA-29273:HTTP请求失败 ORA-06512:在“SYS.UTL_HTTP”,第1130行 ORA-29024:证书验证失败 ORA-06512:第6行 为了记录,值得注意的是以下内容确实有效: declare lo_req utl_http.req; lo_resp utl_http.resp; begin utl_http.set_wallet ( 'file:/oracle/product/12.0.1/owm/wallets/test1237','test=1237'); lo_req := utl_http.begin_request ( 'https://www.google.be' ); lo_resp := utl_http.get_response ( lo_req ); dbms_output.put_line ( lo_resp.status_code ); utl_http.end_response ( lo_resp ); end; / 帮助我欧比万,你是我唯一的希望. 为了别人的利益回答我自己的问题.根据Oracle Support,只应导入证书链,而不是最终站点证书. Geotrust SSL CA& Geotrust Global CA. 请勿导入* .presstogo.com证书 引用Oracle支持:
这与我在网上找到的关于使用utl_http连接到Https网站的所有信息相矛盾,并且让我感到很困惑. 希望这会在我的情况下帮助其他人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 不止于小程序 APICloud推出react native纯翻译模式的UI引擎
- 探究C++中string类的实现原理以及扩展使用
- ruby-on-rails – Rails 3.1资产管道:更改默认URL(/ asset
- vb.net 教程 3-7 窗体编程 菜单和工具栏 3 StatusStrip 2
- ruby-on-rails – 如何使用Faye仅通知页面上的特定用户?
- XML Namespaces
- c# – 在多个线程中使用Random共享相同的方法
- xcode – Swift和比较C typedef枚举
- c# – 带有值数据绑定的WPF ProgressBar
- 用Swift写一个IOS的自定义弹窗-纯代码实现