内容参考Oracle官方文档:
https://oracle-base.com/articles/misc/configure-tcpip-with-ssl-and-tls-for-database-connections
https://docs.oracle.com/cd/E11882_01/network.112/e40393/asoappf.htm#ASOAG9835
orapki
实用程序用于从命令行管理公用密钥基础结构(PKI)元素,例如钱包和证书撤销列表。这使您可以使用脚本自动执行这些任务。提供一种将PKI元素管理结合到脚本中的方法,可以自动执行许多维护PKI的日常任务
客户端与服务器端基本环境:
- 服务器端操作系统为CentOS 6.5_x86,安装并在运行着Oracle11g数据库,主机名为oracle.lushenle.com,IP地址为192.168.200.249,数据库实例为orcl
- 客户端为Windows7操作系统,64位,安装了Oracle11g客户端,能正常连接服务器端的数据库,主机名为ASUS-PC
主要配置步骤:
- 服务器端配置Wallet和生成证书
- 客户端配置Wallet和生成证书
- 交换证书
- 服务器端网络配置
- 客户端网络配置
- 测试连接
服务器端配置Wallet和生成证书
创建一个新的自动登录wallet
$ mkdir -p /u01/app/oracle/wallet
$ orapki wallet create -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 -auto_login_local
创建一个自签名证书并将其加载到
$ orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 -dn "CN=`hostname`" -keysize 1024 -self_signed -validity 3650
检查wallet的内容,需要注意的是自签名证书既是用户也是可信证书
$ orapki wallet display -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123
导出证书,以便稍后将其加载到客户的wallet中
$ orapki wallet export -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 -dn "CN=`hostname`" -cert /tmp/`hostname`-certificate.crt
检查证书是否已按预期导出
$ cat /tmp/`hostname`-certificate.crt
客户端配置Wallet和生成证书
创建一个新的自动登录wallet
c:\>mkdir d:\app\oracle\wallet
c:\>orapki wallet create -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123 -auto_login_local
创建一个自签名证书并将其加载到wallet中
c:\>orapki wallet add -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123 -dn "CN=%computername%" -keysize 1024 -self_signed -validity 3650
检查wallet的内容,需要注意的是自签名证书既是用户也是可信证书
c:\>orapki wallet display -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123
导出证书,以便稍后将其加载到服务器中
c:\>orapki wallet export -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123 -dn "CN=%computername%" -cert d:\%computername%-certificate.crt
检查证书
c:\>more d:\%computername%-certificate.crt
交换证书
连接的每一方都需要相互信任,所以必须从服务器上将证书作为可信证书加载到客户端wallet中,反之亦然。
远程连接上服务,使用xftp将证书下载到客户端,同时也把客户端证书上传到服务器,再将服务器证书加载到客户端wallet中
c:\>orapki wallet add -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123 -trusted_cert -cert d:\oracle.lushenle.com-certificate.crt
检查客户wallet的内容,注意服务器证书现在包含在可信证书列表中
c:\>orapki wallet display -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123
将客户端证书加载到服务器钱包中
$ orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 -trusted_cert -cert /tmp/ASUS-PC-certificate.crt
检查服务器wallet的内容,注意客户证书现在包含在可信证书列表中
$ orapki wallet display -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123
服务器网络配置
在服务器上,将以下内容添加到“$ORACLE_HOME/network/admin/sqlnet.ora”文件中
1 WALLET_LOCATION = 2 (SOURCE = 3 (METHOD = FILE) 4 (METHOD_DATA = 5 (DIRECTORY = /u01/app/oracle/wallet) 6 ) 7 ) 8 9 SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS,BEQ) 10 SSL_CLIENT_AUTHENTICATION = FALSE 11 SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA)
将监听配置为接受SSL/TLS加密连接。编辑“$ORACLE_HOME/network/admin/listener.ora”文件,添加wallet信息以及TCPS内容
1 SSL_CLIENT_AUTHENTICATION = FALSE 2 3 WALLET_LOCATION = 4 (SOURCE = 5 (METHOD = FILE) 6 (METHOD_DATA = 7 (DIRECTORY = /u01/app/oracle/wallet) 8 ) 9 ) 10 11 LISTENER = 12 (DESCRIPTION_LIST = 13 (DESCRIPTION = 14 (ADDRESS = (PROTOCOL = TCP)(HOST = oracle.lushenle.com)(PORT = 1521)) 15 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 16 (ADDRESS = (PROTOCOL = TCPS)(HOST = oracle.lushenle.com)(PORT = 2484)) 17 ) 18 ) 19 20 ADR_BASE_LISTENER = /u01/app/oracle
重启监听
$ lsnrctl stop
$ lsnrctl start
```好像是 lsnrctl reload 也可以的,不用stop再start```
至此,服务器端已经配置完成
客户端网络配置
编辑“$ORACLE_HOME/network/admin/sqlnet.ora”文件,添加以内容
1 WALLET_LOCATION = 2 (SOURCE = 3 (METHOD = FILE) 4 (METHOD_DATA = 5 (DIRECTORY = d:\app\oracle\wallet) 6 ) 7 ) 8 9 SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS) 10 SSL_CLIENT_AUTHENTICATION = FALSE 11 SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA)
```确保客户端密码套件与服务器配置匹配```
编辑“$ORACLE_HOME/network/admin/tnsnames.ora”文件,确保端口对应于在服务器上为SSL配置的端口,协议是TCPS
1 orcl= 2 (DESCRIPTION= 3 (ADDRESS= 4 (PROTOCOL=TCPS) 5 (HOST=192.168.200.249) 6 (PORT=2484) 7 ) 8 (CONNECT_DATA= 9 (SERVER=dedicated) 10 (SID=orcl) 11 ) 12 )
至此,客户端配置完成,可以连接测试
测试连接
c:\>sqlplus sys/manunkind@//192.168.200.249:2484/orcl
仅仅连接上去,并不能说明数据就是加密传输的,还需要进一步的验证,最简单的方式的把两种连接方式下的数据传输抓包、分析。这样才能说明问题。
相关推荐
oracle WALLET 与SSL 配置oracle的ssl连接 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ora10g.unimassystem.com) (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) (SID_NAME = ora10g) ) ...
用Oracle Wallet实现透明加密.pdf
oracle 11g/10g code example. setup oracle wallet install RAC
本程序可对ORACLE数据库建立连接,同时可以对数据库的数据进行操作,并且对数据进行加密。本程序属本人原创。
Oracle wallet encryption 简单介绍,rman口令模式加密
Oracle客户端连接远端数据库 Oracle客户端连接远端数据库
keycloak-oracle-wallet 带有脚本的Keycloack自定义容器,可与Oracle Cloud free数据库一起使用。
##安装要使用此软件包,您需要将GitHub ssl证书安装到oracle钱包中。 使用浏览器下载证书,并创建一个钱包并导入证书(有关如何执行此操作的更多详细信息,请点击此处,): ###创建钱包orapki wallet create -...
// If connecting to OCI (Oracle cloud) need to specify location of Oracle Wallet process . env [ 'TNS_ADMIN' ] = '/Users/vmorneau/oracle/wallets/atp01' ; publisher . publish ( { libDir : "/Users/...
The Oracle Database Advanced Security Administrator's Guide is intended for users and systems professionals involved with the implementation, configuration, and administration of Oracle Advanced ...
Ethereum-Wallet安装包
这些年买的搜集的,各位有能力同学搞一搞
Laravel开发-wallet Coderity Wallet扩展了Laravel出纳功能,允许用户使用多张具有多个订阅功能的信用卡,同时还可以根据需要对不同的信用卡收费。
My-Wallet-V3-Android Next-generation HD (BIP32, BIP39, BIP44) bitcoin, ethereum and bitcoin cash wallet. Getting started Install Android Studio: https://developer.android.com/sdk/index.html Import ...
This is a simple bitcoin wallet application that can help those who are getting started with bitcoin programming using python. In this project I use python version 3.6 and Pycharm. File free to fork ...
It is with joy that we present the 0.10.0 version of Ethereum Wallet and Mist Browser beta
Ethereum Wallet客户端对应的是Mist项目,现在此客户端大多都称为Ethereum Wallet,也有称作Mist客户端的,知道它们两个指的是通一个客户端即可。此客户端使用JavaScript进行开发,支持windows、linux和OSX三类操作...
类似 Wallet 效果的卡片管理组件.zip,钱包是一个管理卡片和通行证的图书馆。
e-wallet电子钱包软件,可用于电子商务课程,学生实验使用。