Oracle Data Guard SSL证书过期如何更换?

梦涛姑娘_1073

梦涛姑娘_1073

2026-08-01

246人浏览

原创

oracle data guard本身不直接管理ssl/tls证书,而是依赖数据库服务器、oracle net services(sqlnet.ora)、监听器或云平台等组件的证书;常见过期位置包括主备库wallet中的tls证书、监听器/em express绑定的https证书,或oci负载均衡器等云侧证书,需先定位具体失效组件再针对性更换。

oracle data guard ssl证书过期如何更换?

Oracle Data Guard 本身不直接管理 SSL/TLS 证书;它依赖底层数据库服务器(如 Oracle Database)和传输层(如 Oracle Net Services / sqlnet.ora)的加密配置。如果你看到 “Oracle Data Guard SSL证书过期” 报错或连接失败,实际是以下某处的证书失效了:

  • 主库或备库的 Oracle Wallet 中存放的 TLS 证书(用于 SSL 加密的 sqlnet.ora 配置)
  • Data Guard Broker 使用的监听器(listener.ora)所绑定的 HTTPS 管理端口证书(如 EM Express 或 Broker CLI over HTTPS)
  • 云环境(如 OCI、Exadata Cloud@Customer)中由平台托管的负载均衡器或代理层使用的证书(非数据库侧,但影响 DG 连接链路)

所以,不是“Data Guard 有独立证书”,而是它运行依赖的 TLS 组件证书过期了。更换动作必须落在具体证书持有者上。

确认哪个组件的证书过期了

先定位问题来源,避免盲目替换:

  • 检查主/备库的 sqlnet.ora 是否启用 SSL:SSL_SERVER_DN_MATCH=yes、SSL_CLIENT_AUTHENTICATION=TRUE 等配置存在 → 重点查 Oracle Wallet(orapki wallet)里的证书有效期
  • 用 openssl s_client -connect host:port -showcerts 测试监听器端口(如 1522、5500)是否返回过期证书 → 若返回,说明是监听器或 EM Express 的证书问题
  • 在 OCI 控制台查看 Data Guard 组关联的 Load Balancer 或 Gateway 服务 → 若使用云厂商 TLS 终结,证书在云控制台管理,与数据库无关
  • 查看告警日志:ALERT.LOG 中出现 ORA-29024: Certificate validation failure 或 TNS-00507: SSL Handshake failed → 明确指向 Oracle Net 层证书校验失败

更换 Oracle Wallet 中的 SSL 证书(最常见场景)

这是 Data Guard 启用加密传输时最常出问题的位置。Wallet 里包含信任证书(cwallet.sso)、用户证书和私钥,其中任一过期都会中断加密连接。

Market Oracle
Market Oracle

金融事件影响分析器 — 获取突发新闻,追踪金属/石油/加密货币/股票价格,预测短中长期市场连锁反应

下载
  • 不要直接修改现有 wallet,用 orapki wallet create 新建一个空 wallet,再导入新证书链
  • 确保新证书满足 Oracle 要求:RSA 密钥 ≥ 2048 位,SHA-256 签名,有效期 ≤ 199 天(CA/B Forum 2026 年新规强制)
  • 导入顺序必须为:根 CA → 中间 CA → 本机证书(orapki wallet add_cert),否则验证失败
  • 更新 sqlnet.ora 指向新 wallet 路径:WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/admin/wallet_new)))
  • 重启监听器和数据库实例(仅 listener 重启不足以刷新 wallet 缓存,必须 restart database)

更换监听器或 EM Express 的 HTTPS 证书

如果 Data Guard Broker CLI 或 EM Express 页面提示证书错误(如浏览器显示 NET::ERR_CERT_EXPIRED),问题不在 wallet,而在监听器绑定的 HTTPS 服务。

  • 监听器证书由 ssl.ora 或 listener.ora 中的 SSL_CIPHER_SUITES 和证书路径控制,但 Oracle 不提供图形化更新入口
  • 标准做法:用 orapki wallet 创建含新证书的 wallet,再在 listener.ora 中指定该 wallet 路径,并设置 SSL_CLIENT_AUTHENTICATION=FALSE(仅加密,不认证)以简化流程
  • EM Express 默认复用监听器证书;若单独配置 HTTPS 端口(如 DBExpress),需通过 DBMS_XDB_CONFIG.SETHTTPSPORT 重新绑定,但证书仍来自 wallet
  • 注意:重启监听器后,执行 lsnrctl reload 不生效,必须 lsnrctl stop && lsnrctl start

云环境(OCI / Exadata Cloud@Customer)中的证书归属

如果你用的是 Oracle Cloud Infrastructure 的 Data Guard 组(Oracle Data Guard Group),那么 TLS 终结很可能发生在 Load Balancer 或 Service Gateway 层 —— 此时数据库本身未启用 SSL,证书完全由云平台管理。

  • 登录 OCI 控制台 → 进入对应 Load Balancer → 查看 “SSL Certificates” 标签页 → 替换证书(支持 PEM 格式上传)
  • 证书替换后无需重启 DB,但需等待 LB 配置同步(通常 1–2 分钟),旧连接会自然断开重连
  • 不能在数据库侧执行任何 wallet 操作,否则可能与 LB 的明文转发策略冲突
  • 检查 Data Guard 组状态是否变为 UPDATING 或 INVALID_CERTIFICATE,这是 OCI 对证书异常的明确标识

真正麻烦的不是换证书,而是搞不清证书到底属于哪一层 —— 数据库 wallet?监听器?EM Express?还是云 LB?一旦选错位置,换十次也没用。尤其在混合部署(本地主库 + 云备库)场景下,两边证书策略可能不同步,必须分别验证。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

oracle ssl

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

2023.08.16

841

5

Oracle中declare的使用
Oracle中declare的使用

Oracle DECLARE语句是PL/SQL编程语言中用于声明变量、常量、游标或异常的关键字。它的主要作用是在程序中定义这些对象,以便在后续的代码中使用。DECLARE语句的语法简单明了,可以根据需要声明多个对象。通过使用这些声明的对象,可以进行各种操作,如计算、查询数据库、处理异常等 。

2023.09.15

2293

5

oracle怎么分页
oracle怎么分页

实现分页的步骤:1、使用ROWNUM进行分页查询;2、在执行查询之前进行设置分页参数;3、使用"COUNT(*)"函数来获取总行数,并使用"CEIL"函数来向上取整计算总页数;4、在外部查询中使用"WHERE"子句来筛选出特定的行号范围,以实现分页查询。想了解更多oracle怎么分页的文章,可以来阅读本专题先的文章。

2023.09.18

2310

5

Oracle查看表操作历史记录
Oracle查看表操作历史记录

查看操作历史记录的方法:1、使用Oracle内置的审计功能,可以记录数据库中发生的各种操作,包括登录、DDL语句、DML语句等;2、使用Oracle日志文件,其中包含了数据库中发生的各种操作,可以通过查看日志文件来获取操作历史记录;3、使用Oracle的Flashback功能,可以查看数据库在某个时间点的操作历史记录;4、使用第三方工具等。本专题还提供其他查看表操作的文章,大家可以免费阅读。

2023.09.19

1349

3

Oracle中RAC的用法
Oracle中RAC的用法

Oracle中RAC的用法:1、通过在多个服务器上运行数据库实例来提供高可用性;2、允许在需要时增加或减少节点数量;3、通过将工作负载分布到多个节点上来实现负载均衡;4、使用共享存储来实现多个节点之间的数据共享;5、允许多个节点同时处理数据库请求,从而实现并行处理;6、提供了透明故障切换功能;7、使用了一些技术来确保数据的一致性;8、提供了管理工具来简化RAC环境的管理和维护。本专题还提供RAC相关的其他文章,大家可以免费阅读。

2023.09.19

1933

7

oracle imp
oracle imp

imp是Oracle数据库中的一个命令行工具,用于将导出的数据和对象从一个数据库实例导入到另一个数据库实例。imp命令的一般语法为“imp username/password@connect_string file=file_name [options]”。

2023.09.19

2489

4

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4109

19

oracle通配符有哪些
oracle通配符有哪些

oracle通配符有“%”、“_”、“[]”和“[^]"。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.08

237

5

oracle四舍五入怎么操作
oracle四舍五入怎么操作

oracle四舍五入操作可以使用ROUND函数来实现,其语法为“ROUND(number, decimal_places)”,其中,number是要进行四舍五入的数值,decimal_places是指定的小数位数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.14

646

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程