使用通配符证书从oracle utl_http调用https://www.facebook.com

前端之家收集整理的这篇文章主要介绍了使用通配符证书从oracle utl_http调用https://www.facebook.com前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在使用oracle 12.1.0.1.0.

我们一直通过utl_http向多个服务发出https调用,没有任何问题.
我们多年来一直这样做,我们也一直在使用它进行Facebook授权.

最近,我们在https中调用facebook.com网址时遇到了一个我们无法解决的问题.
它似乎与facebook在* .facebook.com上使用证书的转换相吻合.
虽然我不愿意说这是原因,但可能是相关的.
为了节省您的时间,我们对网络acl授权很好,并且没有证书验证错误.

我们得到的错误代码问题是:

  1. ORA-29273: HTTP request Failed
  2. ORA-06512: at "SYS.UTL_HTTP",line 1130
  3. ORA-28750: unknown error
  4. ORA-06512: at "SYS.UTL_HTTP",line 1130

发出utl_http.begin_request的pl / sql行发生错误.

我的问题是:任何人都可以复制这个问题吗?有没有人去过那里找到解决方案?任何输入都表示赞赏.

包括两个例子:一个是对redhat.com域的调用,它可以正常工作.
另一个是对具有上述问题的facebook.com域名的调用.
在两种情况下使用的代码都是相同的.
两个域都使用* .domain上的证书.

目标页面https://www.redhat.com/en/about

– redhat页面的证书链

  1. GTE CyberTrus Global Root
  2. Baltimore CyberTrust Root <=== rh_01.crt
  3. Cybertrust Public SureServer SV CA <=== rh_02.crt
  4. *.redhat.com

– 钱包包含箭头标记的证书.我们不包含* .redhat.com证书,因为只有受信任的证书才能进入钱包.

– 以下是redhat.com的钱包是如何创建的.

  1. orapki wallet create -wallet /dir1/rh -pwd walletpassword -auto_login
  2. orapki wallet add -wallet /dir1/rh -trusted_cert -cert "/dir1/rh/rh_01.crt" -pwd walletpassword
  3. orapki wallet add -wallet /dir1/rh -trusted_cert -cert "/dir1/rh/rh_02.crt" -pwd walletpassword

– 这是进行https调用代码.

  1. declare
  2. wrequest utl_http.req;
  3. wwallet_location varchar2(400) := 'file:/dir1/rh';
  4. wwallet_password varchar2(400) := 'walletpassword';
  5. wurl varchar2(400) := 'https://www.redhat.com/en/about';
  6. begin
  7. utl_http.set_wallet(wwallet_location,wwallet_password);
  8. wrequest := utl_http.begin_request(wurl,'GET',utl_http.http_version_1_1);
  9. end;

– 这很好用

===============================================
这是相同的设置,无法调用Facebook页面.

目标页面https://www.facebook.com/login/identify?ctx=recover

– Facebook页面的证书链

  1. GTE CyberTrus Global Root
  2. Baltimore CyberTrust Root <=== fc01_.crt
  3. Digicert High Assurance EV Root CA <=== fc02_.crt
  4. Digicert High Assurance CA-3 <=== fc03_.crt
  5. *.facebook.com

– 钱包包含箭头标记的证书

– 这是facebook的钱包是如何创建的.

  1. orapki wallet create -wallet /dir1/fc -pwd walletpassword -auto_login
  2. orapki wallet add -wallet /dir1/fc -trusted_cert -cert "/dir1/fc/fc_01.crt" -pwd walletpassword
  3. orapki wallet add -wallet /dir1/fc -trusted_cert -cert "/dir1/fc/fc_02.crt" -pwd walletpassword
  4. orapki wallet add -wallet /dir1/fc -trusted_cert -cert "/dir1/fc/fc_03.crt" -pwd walletpassword

– 这是进行https调用代码.

  1. declare
  2. wrequest utl_http.req;
  3. wwallet_location varchar2(400) := 'file:/dir1/fc';
  4. wwallet_password varchar2(400) := 'walletpassword';
  5. wurl varchar2(400) := 'https://www.facebook.com/login/identify?ctx=recover';
  6. begin
  7. utl_http.set_wallet(wwallet_location,utl_http.http_version_1_1);
  8.  
  9. end;

– 此代码给出错误

  1. ORA-29273: HTTP request Failed
  2. ORA-06512: at "SYS.UTL_HTTP",line 1130

你能复制这个错误吗?还是只是我?
提前致谢.

我们遇到了同样的问题,oracle证实他们不支持Wildcar SSL.

猜你在找的Oracle相关文章