You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows与Linux环境下Oracle SSL配置操作步骤说明

Oracle环境SSL配置全操作流程(Windows/Linux双场景覆盖)

前置准备

  • 提前确认Oracle服务端实例、默认TCP监听运行正常,客户端和服务端网络连通
  • 准备证书材料:测试环境可直接生成自签名证书,生产环境建议使用CA签发的合规证书,证书CN字段需匹配数据库服务端的实际IP或域名
  • 操作全程使用对应权限账号:Windows用管理员组账号,Linux切换至oracle运维账号操作,不要直接用root执行Oracle相关命令,避免权限错乱
  • Oracle自带的orapki工具为配置核心工具,Windows默认路径为%ORACLE_HOME%\bin\orapki.exe,Linux默认路径为$ORACLE_HOME/bin/orapki,执行命令前可先切到对应bin目录,或把bin目录加入系统环境变量。

一、证书钱包(Wallet)配置(双系统逻辑一致,仅路径有差异)

Oracle通过Wallet文件存储SSL证书、私钥,所有证书操作都围绕钱包展开。

  1. 提前创建钱包存放目录
    • Windows建议路径:C:\app\oracle\admin\实例名\wallet,创建完成后右键文件夹,给Oracle服务运行账号分配完全控制权限
    • Linux建议路径:/u01/app/oracle/admin/实例名/wallet,创建完成后执行权限配置:chown -R oracle:oinstall /u01/app/oracle/admin/实例名/wallet && chmod 700 /u01/app/oracle/admin/实例名/wallet
  2. 创建开启自动登录的钱包,避免数据库/监听重启时反复输入钱包密码
    • Windows执行命令:
      orapki wallet create -wallet C:\app\oracle\admin\orcl\wallet -auto_login -pwd 自定义钱包密码
    • Linux执行命令:
      orapki wallet create -wallet /u01/app/oracle/admin/orcl/wallet -auto_login -pwd 自定义钱包密码
  3. 导入/生成证书
    • 测试环境直接生成自签名证书即可,有效期可按需设置,示例为10年有效期:
      Windows命令:
      orapki wallet add -wallet C:\app\oracle\admin\orcl\wallet -dn "CN=数据库服务端IP/域名,O=所属组织名,C=CN" -keysize 2048 -self_signed -validity 3650 -pwd 钱包密码
      Linux命令:
      orapki wallet add -wallet /u01/app/oracle/admin/orcl/wallet -dn "CN=数据库服务端IP/域名,O=所属组织名,C=CN" -keysize 2048 -self_signed -validity 3650 -pwd 钱包密码
    • 生产环境用CA签发证书的,先导出CSR文件提交给CA:orapki wallet export -wallet 钱包路径 -dn "CN=数据库服务端IP/域名,O=所属组织名,C=CN" -request server.csr -pwd 钱包密码,拿到CA返回的根证书、中间证书、服务端证书后,按顺序导入钱包:先导根证书,再导中间证书,最后导服务端用户证书,导入命令格式:orapki wallet add -wallet 钱包路径 -trusted_cert -cert 证书文件路径 -pwd 钱包密码(导服务端用户证书时去掉-trusted_cert参数)
  4. 验证钱包配置:执行orapki wallet display -wallet 钱包路径 -pwd 钱包密码,输出中能看到已导入的可信证书、用户证书即为配置正常。

二、服务端SSL监听配置

Linux环境操作步骤

  1. 编辑$ORACLE_HOME/network/admin/listener.ora文件,添加TCPS监听端口(默认用2484),指定钱包路径,参考配置如下(注意替换成你自己的ORACLE_HOME路径、实例名、IP):
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1)
      (SID_NAME = orcl)
    )
  )

SSL_CLIENT_AUTHENTICATION = FALSE
WALLET_LOCATION =
  (SOURCE =
    (METHOD = FILE)
    (METHOD_DATA =
      (DIRECTORY = /u01/app/oracle/admin/orcl/wallet)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库服务端IP)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCPS)(HOST = 数据库服务端IP)(PORT = 2484))
    )
  )
  1. 编辑同目录下的sqlnet.ora文件,添加SSL参数配置:
SQLNET.AUTHENTICATION_SERVICES= (BEQ, TCPS, NTS)
SSL_VERSION = 1.2
SSL_CIPHER_SUITES= (SSL_RSA_WITH_AES_256_GCM_SHA384,SSL_RSA_WITH_AES_128_GCM_SHA256)
WALLET_LOCATION =
  (SOURCE =
    (METHOD = FILE)
    (METHOD_DATA =
      (DIRECTORY = /u01/app/oracle/admin/orcl/wallet)
    )
  )
  1. 重启监听生效:执行lsnrctl stop && lsnrctl start,重启完成后执行lsnrctl status,输出中能看到2484端口的TCPS监听条目即为正常。
  2. 配置防火墙放行2484端口入站规则。

Windows环境操作步骤

  1. 可直接编辑%ORACLE_HOME%\network\admin\listener.ora文件,配置逻辑和Linux完全一致,仅路径替换为Windows格式,参考配置:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = C:\app\oracle\product\19c\dbhome_1)
      (SID_NAME = orcl)
    )
  )

SSL_CLIENT_AUTHENTICATION = FALSE
WALLET_LOCATION =
  (SOURCE =
    (METHOD = FILE)
    (METHOD_DATA =
      (DIRECTORY = C:\app\oracle\admin\orcl\wallet)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库服务端IP)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCPS)(HOST = 数据库服务端IP)(PORT = 2484))
    )
  )
  1. 编辑同目录下的sqlnet.ora文件,SSL参数配置和Linux完全一致,仅钱包路径替换为本地Windows路径即可。
  2. 重启监听生效:按下Win+R输入services.msc打开服务列表,找到名称类似OracleOraDB19Home1TNSListener的Oracle监听服务(版本不同后缀有差异),右键选择重启。
  3. 打开cmd执行lsnrctl status,确认2484端口TCPS监听已正常注册,同时在Windows高级防火墙中添加入站规则放行2484端口。

三、客户端SSL连接配置(双系统通用)

  1. 在客户端机器上创建客户端钱包,步骤和服务端创建钱包一致,创建完成后将服务端的根证书导入客户端钱包作为可信证书,导入命令:orapki wallet add -wallet 客户端钱包路径 -trusted_cert -cert 服务端根证书文件路径 -pwd 客户端钱包密码
  2. 修改客户端网络配置目录下的tnsnames.ora文件,添加SSL连接串:
ORCL_SSL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCPS)(HOST = 数据库服务端IP)(PORT = 2484))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
    (SECURITY=
      (SSL_SERVER_CERT_DN="CN=数据库服务端IP/域名,O=所属组织名,C=CN")
    )
  )
  1. 修改客户端的sqlnet.ora文件,指定客户端钱包路径,SSL版本、加密套件配置和服务端保持一致。
  2. 连接测试:执行sqlplus 数据库用户名/密码@ORCL_SSL,能正常登录数据库即为配置成功。

常见问题排查

  • 监听启动报钱包加载失败:优先检查钱包目录权限,确认Oracle运行账号对钱包目录和内部的cwallet.sso、ewallet.p12文件有读写权限,同时核对listener.ora中配置的钱包路径和实际路径完全一致
  • 连接报SSL握手失败:检查服务端和客户端的SSL_VERSION配置是否一致,加密套件配置是否匹配,确认客户端钱包已正确导入服务端根证书
  • 监听启动正常但telnet不通2484端口:检查系统防火墙是否放行了对应端口,云服务器还要检查安全组规则是否放行端口
  • Windows环境配置后连接超时:确认Oracle监听服务的运行账号有足够权限访问钱包目录,不要用本地系统账号跑监听服务,建议用专门的Oracle运维账号运行。

内容的提问来源于stack exchange,提问作者singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.12 16:15:51