内容参考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) ) ...
本文将详细介绍如何在Windows Server环境下为Oracle数据库配置SSL,包括创建SSL数字证书、配置Oracle Wallet、以及通过Java JDBC和PL/SQL进行SSL连接测试。 #### 二、环境搭建与工具准备 ##### 2.1 Oracle安装 确保...
Oracle 12c引入了更安全的加密标准,如Oracle Wallet和SSL/TLS,如果这些设置没有正确配置,就会导致此类问题。 **Kettle与Oracle 12c的连接问题:** 1. **驱动版本**:确保Kettle使用的Oracle JDBC驱动版本与...
9. **安全性**: Oracle 11g客户端工具也包含了对SSL/TLS的支持,可以加密传输数据以确保数据安全。此外,还有身份验证和授权机制,如Oracle Wallet和操作系统认证,保障了用户访问控制的安全性。 10. **兼容性**: ...
7. **安全性和优化**:Oracle Client还支持SSL/TLS加密,可以保护数据传输的安全。另外,可以通过调整连接池大小、预取行数等参数,优化客户端的性能和资源使用。 总的来说,Oracle Client 11 x64 是一个强大的...
3. **SSL 连接初始化失败**:从 trace 文件中可以看到多条关于 SSL 连接初始化失败的错误信息,例如“Open wallet failed, ret=28750”、“Unable to initialize ssl connection with server, aborting connection ...
5. **安全性组件**:Oracle数据库支持多种身份验证机制,如简单的用户名/密码、网络加密(SSL/TLS)和Oracle Wallet。PB客户端可能需要配置这些安全组件才能安全地连接到数据库。 6. **兼容性问题**:PB 9.0至PB 12...
在安全方面,Oracle Instant Client遵循了Oracle数据库的安全特性,支持SSL/TLS加密、身份验证机制如Oracle Wallet和操作系统认证,以及数据库访问控制策略。这使得即使在不完全安全的网络环境中,数据传输也能得到...
- **安全管理**:设置Oracle Wallet,实现SSL加密和身份验证。 - **性能调优**:调整初始化参数,优化内存分配和I/O平衡。 6. **故障检测与恢复**: - ** CRS Watchdog**:监控节点和服务状态,自动处理故障。 ...
5. **认证与安全性**:ojdbc8.jar支持多种认证机制,包括基本的用户名/密码认证,以及更高级的如Oracle Wallet、Integrated Authentication等。同时,驱动还支持SSL/TLS加密,确保数据传输的安全性。 6. **性能优化...
8. **安全性组件**:Oracle客户端也包含了身份验证、授权和加密相关的组件,如Oracle Wallet管理工具,用于安全地存储数据库连接信息和证书。 安装Oracle客户端后,通常需要配置环境变量,比如ORACLE_HOME、PATH和...
在Oracle中,SSL可以通过使用Wallet来实现。Wallet是存储加密密钥、证书和其他安全信息的容器。配置SSL连接通常包括创建和管理Wallet,生成认证请求,制作和导入数字证书,以及配置服务器端的TCP/IP连接服务。 2. ...
包括Oracle Wallet管理工具,可以存储和管理数据库连接信息,以及SSL/TLS协议用于加密网络通信。 6. **性能优化**:包括SQL优化顾问,帮助识别并优化低效的SQL查询;还有绑定变量,提升多次执行相同SQL语句时的性能...
9. **安全性**:Oracle Client支持多种安全特性,如SSL加密、身份验证机制(如Oracle Wallet和操作系统认证)以及权限管理和审计功能。 10. **性能优化**:客户端可以通过调整参数(如SQL*Net缓冲区大小、连接池...
7. **安全特性**: Oracle客户端支持各种安全措施,包括SSL/TLS加密、数据库认证机制(如Oracle Wallet、OS认证、Kerberos等)和角色权限管理,确保数据的安全传输和访问。 8. **兼容性**: 这个32位的客户端可以与...
- **安全设置**:配置Oracle Wallet管理SSL连接,以及设置适当的权限和安全策略。 - **性能优化**:根据业务需求调整参数,如PGA和SGA大小,以及SQL优化策略。 在Windows平台下,尽管Oracle RAC的安装和配置比在...
- 在配置连接时,确保使用安全的身份验证方式,如Oracle Wallet或SSL/TLS加密,以保护数据传输的安全。 7. **版本兼容性**: - 确保所使用的Oracle Instant Client版本与目标数据库服务器的Oracle版本兼容,以免...
ojdbc6.jar支持多种认证方式,包括基本的用户名/密码认证,以及Oracle的网络认证机制如Oracle Wallet和集成Windows认证。同时,还可以通过设置SSL/TLS来加密数据库连接,提高安全性。 6. **错误处理和日志记录**:...
配置安全连接使用安全套接层连接 Oracle 需要经过多个步骤,包括创建 Wallet、生成认证请求、制作数字证书、导入信认根证书和用户证书、配置使用 SSL 的 TCP/IP 连接服务端等。 ### 2. 使用 Wallet Manager 创建 ...