oracle 官方文档
内容参考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
主要配置步骤
服务器端配置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”文件中
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = /u01/app/oracle/wallet)
)
)
SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS,BEQ)
SSL_CLIENT_AUTHENTICATION = FALSE
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内容
SSL_CLIENT_AUTHENTICATION = FALSE
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = /u01/app/oracle/wallet)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle.lushenle.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCPS)(HOST = oracle.lushenle.com)(PORT = 2484))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
重启监听
$ lsnrctl stop
$ lsnrctl start
也可以使用
lsnrctl reload