Oracle Wallet 钱包配置

Oracle Wallet 是一种安全容器,用于安全地存储敏感信息,如加密密钥、证书、凭据等,在 Oracle 安全体系中扮演着核心角色。本文主要侧重于介绍如何在 Linux 下配置 Oracle Wallet,以便可以通过 utl_http 发起 https 请求(以访问 https://www.google.com 为例)。
Wallet 的主要作用
| 功能场景 | 说明 |
|---|---|
| 1. TDE(Transparent Data Encryption) | 存储主加密密钥(master encryption key),用于加密/解密表或表空间的数据。Wallet 是 TDE 启动的前提。 |
| 2. Oracle Auto-Login(自动登录 Wallet) | 实现数据库启动时无需手动输入密码即可访问加密内容(常用于无人值守环境) |
| 3. Oracle Secure External Password Store(SEPS) | 允许将数据库连接口令以加密形式存储在 Wallet 中,避免将密码暴露在脚本或配置文件中 |
| 4. SSL/TLS 证书存储 | 存放数据库访问其他服务(如 Web Service、SMTP、LDAP)时所需的客户端证书或信任根证书 |
| 5. Oracle GoldenGate / Data Pump 等工具集成 | 在传输加密数据时,利用 Wallet 中的密钥对数据进行加解密 |
| 6. Database Link 密码加密(12c+) | Wallet 支持存储加密后的数据库链接口令(密钥在 Wallet 中),提高 DBLink 安全性 |
Wallet 的类型
| 类型 | 说明 |
|---|---|
Standard Wallet (ewallet.p12) | 手动加载,需要口令打开 |
Auto-Login Wallet (cwallet.sso) | 自动加载,无需口令(适用于无人值守环境) |
| Local Auto-Login Wallet | 与特定服务器绑定,不能跨主机使用 |
| Password-Protected Wallet | 仅在手动输入密码后才能访问 |
通常实际部署中,开发/测试环境用 auto-login,生产环境使用手动 wallet 并设置安全策略。
Wallet 配置步骤
下载网站证书
首先需要打开浏览器,访问 https://www.google.com 下载网站证书。点击浏览器地址栏左上角的锁图标,选择 连接安全 > 证书有效。

点击 详细信息,选择相应的节点,点击 导出 按钮。

钢哥提醒:这里仅分别导出前两个证书即可,不要导出最后一个。

重命名证书名称(如:google_root.pem,google_wr2.pem),格式选择 Base64编码 ASCII,单一证书,然后点击 存储。
然后将文件上传到你的服务器对应目录下(比如:/u01/wallet/tde)。
创建 Wallet
1 | sqlplus / as sysdba |
将证书导入 Wallet
假设你已经将网站证书存放在 /u01/wallet/tde 目录下了(证书文件为 google_root.pem 和 google_wr2.pem)。那么 wallet_root 的路径就是 /u01/wallet。1
2
3
4
5
6
7mkdir -p /u01/wallet
chmod -R 777 /u01/wallet
orapki wallet create -wallet /u01/wallet/tde -auto_login -pwd 'YourPasswordOfWallet'
orapki wallet add -wallet /u01/wallet/tde -trusted_cert -cert "/u01/wallet/tde/google_root.pem" -pwd 'YourPasswordOfWallet'
orapki wallet add -wallet /u01/wallet/tde -trusted_cert -cert "/u01/wallet/tde/google_wr2.pem" -pwd 'YourPasswordOfWallet'
配置 ACL
1 | BEGIN |
测试 https 请求
1 | DECLARE |
结果显示:HTTP Status Code: 200 即代表成功。