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
即代表成功。