oracle wallet钱包导入ssl证书问题(通用)

项目上有个需要,证书统一修改为https的接口地址,由于要修改为https,和其系统对接的系统oracle数据库内要进行一系列配置来创建钱包导入证书这样子。下面陈述一下我的做法,(其中遇到了很多坑!!!)希望文档对大家有所帮助。
1.确认当前操作系统的版本 11g还是12c 其实数据库版本对证书导入没啥影响
2.去谷歌浏览器上访问你的证书
在这里插入图片描述
首先保障你得证书是有效的,安全的。点击上面的小三角去导出证书
在这里插入图片描述
然后点击证书有效
详细信息下导出
在这里插入图片描述
注意导出格式一定要选择这个根目录的证书
在这里插入图片描述
点击导出
在这里插入图片描述
单一证书即可。
3.导出证书之后上传到你得服务器上去
我这里以oracle reahat linux 6版本为例子
cd /home/oracle
上传证书
在这里插入图片描述
上传完毕之后,对证书进行操作
4.登录数据库oracle用户 进入到oracle bin目录下
cd $ORACLE_HOME/bin
ll orapki
确认有该命令orapki
5.进行创建钱包路径密码操作
在钱包中加入该证书
创建钱包,服务器上首先确认是否有这个钱包路径 没有的话 创建一下
mkdir -p wallet 这里的这个wallet文件默认我是创建在/u01/oracle/product/12.1.0/db_1/scheduler/这个后面的
orapki wallet create -wallet /u01/oracle/product/12.1.0/db_1/scheduler/wallet -pwd WalletPasswd123 -auto_login

在钱包中加入当前咱们导出传入服务器的证书
orapki wallet add -wallet /u01/oracle/product/12.1.0/db_1/scheduler/wallet -trusted_cert -cert “/home/oracle/DigiCert Global Root CA.crt” -pwd WalletPasswd123
6.编写一个存储过程
CREATE OR REPLACE PROCEDURE show_html_from_url (
p_url IN VARCHAR2,
p_username IN VARCHAR2 DEFAULT NULL,
p_password IN VARCHAR2 DEFAULT NULL,
p_wallet_path IN VARCHAR2 DEFAULT NULL,
p_wallet_password IN VARCHAR2 DEFAULT NULL
) AS
l_http_request UTL_HTTP.req;
l_http_response UTL_HTTP.resp;
l_text VARCHAR2(32767);
BEGIN
– If using HTTPS, open a wallet containing the trusted root certificate.
IF p_wallet_path IS NOT NULL AND p_wallet_password IS NOT NULL THEN
UTL_HTTP.set_wallet(‘file:’ || p_wallet_path, p_wallet_password);
END IF;

– Make a HTTP request and get the response.
l_http_request := UTL_HTTP.begin_request(p_url);

– Use basic authentication if required.
IF p_username IS NOT NULL and p_password IS NOT NULL THEN
UTL_HTTP.set_authentication(l_http_request, p_username, p_password);
END IF;

l_http_response := UTL_HTTP.get_response(l_http_request);

– Loop through the response.
BEGIN
LOOP
UTL_HTTP.read_text(l_http_response, l_text, 32766);
DBMS_OUTPUT.put_line (l_text);
END LOOP;
EXCEPTION
WHEN UTL_HTTP.end_of_body THEN
UTL_HTTP.end_response(l_http_response);
END;
EXCEPTION
WHEN OTHERS THEN
UTL_HTTP.end_response(l_http_response);
RAISE;
END show_html_from_url;
7.创建完存储过程之后 在sqlplus命令行下执行 或者登陆不了sqlplus的话在oracle plsql 工具下sqlplus command命令下执行即可:

EXEC UTL_HTTP.set_wallet(‘file:/u01/oracle/product/12.1.0/db_1/scheduler/wallet’, ‘WalletPasswd123’);
你的文件 你得密码
如果可以正确创建存储过程并成功就没有问题

EXEC show_html_from_url(‘你得证书地址’);
类似的
EXEC show_html_from_url(‘https://xxxxxxxxxxxxxxxxxxx’);
存储过程正确执行???
要是可以就是证书配置的没啥问题了
要是不可以 检查下证书是否按照上面步骤安装加载的

8.此时就需要在程序里面调了 oracle的标准程序包
在程序里面用到这个的地方加上
utl_http.set_wallet(‘file:/u01/oracle/product/12.1.0/db_1/scheduler/wallet’,‘WalletPasswd123’);
这样就好了。。。问题解决
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值