配置安全套接层连接oracle目录1. 配置简介 (2)2. 使用Wallet Manager创建Wallet和生成认证请求 (2)2.1. 创建Wallet (2)2.2. 创建认证请求 (3)2.3. 导出证书请求 (3)2.4. 保存Wallet位置 (3)2.5. 让Wallet自动登录 (4)3. 使用openssl工具制作数字证书 (4)3.1. 创建制作证书目录 (4)3.2. 制作发行证书 (4)3.3. 制作用户证书 (5)4. 导入信认根证书和用户证书 (5)4.1. 导入信认根证书 (5)4.2. 导入用户证书 (5)5. 配置使用SSL的TCP/IP连接服务端 (5)5.1. 确认服务器已经生成Wallet (6)5.2. 指定监听服务Wallet存放位置 (6)5.3. 创建监听使用ssl的TCP/IP协议 (7)5.4. 配制数据库监听位置 (8)6. 配置使用SSL的TCP/IP连接客户端 (10)6.1. 确认客户端已经生成Wallet (11)6.2. 配置的Oracle网络服务名称 (11)6.3. 客户端配置Wallet位置 (13)7. 连接数据库 (14)8. 疑难解答 (14)9. Wallet管理方案 (18)10. 参考文献 (18)1.配置简介这里采用安全套接层连接oracle指的是使用ssl的tcp/ip协议连接oracle数据库,由于ssl的tcps/ip协议是采用公钥和私钥进行数据加密,为了解决通信双方的可信问题,使用了数字证书,而orcle是采用“Wallet Manager”来管理证书和公钥和私钥。
配置ssl的tcp/ip协议连接oracle数据库,大体步骤分为以下6步:●使用Wallet Manager创建Wallet和生成认证请求;●使用openssl工具制作数字证书;●导入信认根证书和用户证书;●配置使用SSL的TCP/IP连接服务端;●配置使用SSL的TCP/IP连接客户端;●连接数据库。
注意!以下例子使用的数据库版本为ORACLE 10g 10.2.0.4,如果是其他版本,会有所差异。
2.使用Wallet Manager创建Wallet和生成认证请求Wallet Manager 有以下几点功能:●产生公私密钥对,并生成证书请求;●存储用户证书相匹配的私钥;●配置可信任证书详细配置步骤如下:2.1. 创建Wallet首先启动Wallet Manager工具:•(Windows) 选择开始, 程序, Oracle-HOME_NAME, 集成管理工具, Wallet Manager•(UNIX) 在命令行, 输入owm。
打开Wallet Manager工具后,选择Wallet,新建。
在弹出对话框输入密码,此密码是oracle的Wallet密码,密必是字母和数字结合,而且大于8位字符,Wallet选择标准,点确定。
2.2. 创建认证请求在上面操作点确定以后,提示“是否希望现在创建一个认证请求?”点是。
也可以在选择操作,添加认证请求,在弹出输入信息,信息内容如下表格:2.3. 导出证书请求选择左边树的Wallet下的证书[请求],在选择操作,导出认证请求。
输入要保存文件名[c:\ssl\ request.txt],点保证后导出。
导出认证请求后,接下来就需要使用第3节使用openssl工具来制作数字证书了。
2.4. 保存Wallet位置Wallet创建以后,需要保存Wallet信息,oracle建议保存系统默认位置。
系统默认的Wallet 文件存放如下Unix和Windows平台:•(UNIX) etc/ORACLE/WALLETS/username•(Windows) %USERPROFILE%\ORACLE\WALLETS选择Wallet,系统默认位置,或保存,输入保存路径,点确认。
注!如果Wallet不存放在默认位置,oracle一些程序无法使用。
2.5. 让Wallet自动登录如果不选择Wallet自动登录,在连接数据库的时候会报ORA-28759: 无法打开文件。
选择Wallet,自动登录,把自动登录勾打上。
3.使用openssl工具制作数字证书OpenSSL是一个开放源代码的实现了SSL及相关加密技术的软件包,由加拿大的Eric Yang等发起编写的。
OpenSSL的官方网站为/,源代码可以从ftp:///source/上下载,也可以从OpenSSL的镜像网站下载。
注!在redhat linux下,默认安装有安装好的openssl,而/都是原代码,而且需要懂的C语方的编译才能编译成功,此处从网上收集了for Windows openssl 已经编译好的二进制代码。
我们这里使用openssl用来生成根证书和信任的用户证书。
由于网上收集这两个包压开来需要经过配置,而我的机器又装有MKS Toolkit for Developers Web-extracting tool带有openssl,以下例子使用openssl是MKS Toolkit for Developers Web-extracting tool工具上带的,如果是使用redhat linux,也可以在redhat linux下制作。
3.1. 创建制作证书目录mkdir c:\sslcd sslmkdir ca3.2. 制作发行证书由于证书需要一个发行机构,我们就用openssl制作一个发行证书。
然后在把这个发行证书导入到可信任根证下面,这样这个发行的证书就全部生效了。
首先来制作一个发行证书的请求。
openssl req -new -newkey rsa:1024 -nodes -out c:/ssl/ca/ca.csr –keyout c:/ssl/ca/ca.keyopenssl x509 -signkey c:/ssl/ca/ca.key -req -in c:/ssl/ca/ca.csr -out c:/ssl/ca/ca.crt -CAcreateserial -days 3653.3. 制作用户证书以上已经制作好发行的信任证书了,现在就根据上面发行的信任证书来制作用户证书。
这里用户证书的请求就是第2节的导出证书请求的文件,此例中文件名为:c:\ssl\ request.txt,输入如下命令:求用户者。
4.导入信认根证书和用户证书通过第三节已经制作好用户证书了,但此用户证书制作机构不是“VeriSign Class 3 Public Primary CA”等在名顶顶的认证机构,我们首先需要把制作用户发行机构的证书导入到可信根证书,也就是第3节的c:/ssl/ca/ca.crt文件。
4.1. 导入信认根证书打开oracle的Wallet Manager工具,选择操作,导入信任证书,选择包含证书的文件,点确定,选择c:\ssl\ca\ca.crt文件。
在左边的树中出现导入信任证书。
4.2. 导入用户证书在以上导入了信任证书后,就可以导入用户证书了。
选择操作,导入用户证书,选择包含证书的文件,点确定,选择c:\ssl\user.crt文件。
在左边的树中出现证书[就绪]。
至此,证书的制作和导入都已经完成。
然后按快捷键Ctl+W来保存,同时检查Wallter 菜单下自动登录旁边框打上小钩。
接下来就配制服务端监听ssl的配置了。
5.配置使用SSL的TCP/IP连接服务端在配置服务器端的ssl的TCP/IP连接需要以下几步骤:●确认服务器已经生成Wallter●指定监听服务Wallter存放位置●创建监听使用ssl的TCP/IP协议配置好以后,需要重新启动监听服务,在命令行下输入lsnrctl stoplsnrctl start5.1. 确认服务器已经生成Wallet确认第2节中的Wallet是否创建,确认用户证书是否就绪,同时检查Wallet是否自动登录。
5.2. 指定监听服务Wallet存放位置首先启动Net Manager工具:•(Windows) 选择开始, 程序, Oracle-HOME_NAME, 配置和移植工具, Net Manager•(UNIX) 在命令行, 输入netmgr打开Net Manager工具后,选择右边Oracle Net配置,本地,概要文件,在右边最上面下拉框选择Oracle 高级安全性,单击SSL标签。
配置方法:选择文件系统。
Wallet目录:输入Wallet存放位置。
为以下目标配置SSL选择服务器。
输入以上信息后,点文件菜单下的保存网络配置。
在sqlnet.ora和listener.ora文件更新如下:WALLET_LOCATION =(SOURCE =(METHOD = FILE)(METHOD_DATA =(DIRECTORY = d:\oracle\WALLETS)))5.3. 创建监听使用ssl的TCP/IP协议在Net Manager工具左边树中选择Oracle Net配置,本地,监听程序,LISTENER(如果不存在监听程序,程序编辑菜单下的创建来创建一个监听),在右边最上面下拉框选择监听位置,在下面点添加地址。
协议:使用SSL的TCP/IP;主机:输入机器名或要监听的本机IP地址;端口:输入监听的端口号,Oracle 推荐使用的2484作为SSL的TCP/IP协议监听端口;点显示高级,出现高级协议参数;发送缓冲区大小总计:32768;接收缓冲区大小总计:32768。
提示!由于windows默认缓冲区大小小于32K,而当数据库存有clob和log类型时候,此值要设置大于32k,否则会出现ORA-03114错误,exp时候会出ORA-03113和ORA-24324。
输入以上信息后,点文件菜单下的保存网络配置。
在sqlnet.ora文件更新如下:注意,TCPS必需存在,如果这行不存在或这行值没有TCPS,可以手工加sqlnet.ora这个文件内容。
5.4. 配制数据库监听位置由于我们配制监听的时候使用了2484这个端口,而这个端口不是oracle默认动态PMON 进程向监听注册端口,所以我们需要配置静态监听数据库服务。
在Net Manager工具左边树中选择Oracle Net配置,本地,监听程序,LISTENER(如果不存在监听程序,程序编辑菜单下的创建来创建一个监听),在右边最上面下拉框选择数据库服务。
如果要监听的数据服务已经配置,接下来就不需要配置了。
点下面按钮的添加数据库。
全局数据库名:输入创建数据时候的全局名。
Oracle主目录:输入Oracle的Home目录,如:D:\oracle\product\10.2.0\db_1SID:输入数据库实例的sid。
输入以上信息后,点文件菜单下的保存网络配置。