的keyring_okv
plugin是包含在MySQL企业版中的扩展,这是一个商业产品。要了解更多关于商业产品的信息,请参见https://www.10bet靠谱mysql.com/products/.
密钥管理互操作性协议(KMIP)支持密钥管理服务器与其客户端之间的加密密钥通信。的keyring_okv
keyring插件使用KMIP 1.1协议作为KMIP后端的客户端进行安全通信。密匙环材料完全由后端生成,而不是由keyring_okv
.该插件适用于这些kmip兼容的产品:
Oracle密钥库
金雅拓SafeNet密钥安全设备
Townsend联盟密钥管理器
的keyring_okv
插件支持包含标准MySQL Keyring服务接口的功能。由这些函数执行的密匙环操作可在两个级别访问:
SQL接口:在SQL语句中,调用第6.4.14节“通用密匙环密钥管理功能”.
C接口:用C语言代码调用中描述的keyring业务函数密匙环服务.
示例(使用SQL接口):
SELECT keyring_key_generate('MyKey', 'AES', 32);选择keyring_key_remove(“MyKey”);
类允许的键值的特征信息keyring_okv
,第6.4.12节“支持的密匙环密钥类型和长度”.
安装keyring_okv
,请使用在第6.4.3节,“Keyring插件安装”,以及特定于的配置信息keyring_okv
在这里找到。
无论哪个KMIP后端keyring_okv
插件用于密匙环存储keyring_okv_conf_dir
系统变量配置的目录的位置keyring_okv
查看其支持文件。默认值为空,因此在插件能够与KMIP后端通信之前,必须将该变量设置为正确配置的目录名称。除非你这么做,keyring_okv
在服务器启动期间将无法通信的消息写入错误日志:
插件keyring_okv报告:'要初始化keyring_okv,请将keyring_okv_conf_dir变量指向包含Oracle密钥库配置文件和ssl材料的目录'
的keyring_okv_conf_dir
变量必须命名一个包含以下项目的目录:
okvclient.ora
:包含KMIP后端的详细信息的文件keyring_okv
通信。ssl
:存放与KMIP后端建立安全连接所需的证书和密钥文件的目录。CA.pem
,cert.pem
,key.pem
.如果密钥文件有密码保护,则ssl
目录可以包含单行文本文件password.txt
包含解密密钥文件所需的密码。
这两个okvclient.ora
文件和ssl
存放证书和密钥文件的目录keyring_okv
正常工作。用这些文件填充配置目录的过程取决于所使用的KMIP后端keyring_okv
,如其他地方所述。
所使用的配置目录keyring_okv
作为其支持文件的位置应该有一个限制模式,并且只有用于运行MySQL服务器的帐户才能访问。例如,在Unix和类Unix系统上,使用/usr/local/mysql/mysql-keyring-okv
目录下,执行以下命令(以根
)创建目录,并设置其模式和归属:
CD /usr/local/mysql mkdir mysql-keyring-okv chmod 750 mysql-keyring-okv chmod 750 mysql-keyring-okv chmod 750
为了在服务器启动过程中可用,keyring_okv
必须使用——early-plugin-load
选择。同时,设置keyring_okv_conf_dir
告诉系统变量keyring_okv
在哪里找到它的配置目录。例如,在服务器中使用这些行my.cnf
文件,调整所以
根据需要为您的平台设置后缀和目录位置:
(mysqld) early-plugin-load = keyring_okv。所以keyring_okv_conf_dir = / usr /地方/ mysql / mysql-keyring-okv
这里的讨论假设您熟悉Oracle密钥库。一些相关信息来源:
在Oracle Key Vault术语中,使用Oracle Key Vault存储和检索安全对象的客户端称为端点。要与Oracle密钥库通信,必须注册为端点,并通过下载和安装端点支持文件进行注册。
下面的程序简要地总结了设置的过程keyring_okv
用于Oracle密钥库:
创建配置目录
keyring_okv
插件使用。向Oracle Key Vault注册端点以获得注册令牌。
使用注册令牌获取
okvclient.jar
客户端软件下载。安装客户端软件以填充
keyring_okv
包含Oracle密钥库支持文件的配置目录。
使用以下步骤进行配置keyring_okv
和甲骨文密钥库合作。此描述仅总结了如何与Oracle密钥库交互。详情请浏览Oracle密钥库请访问Oracle密钥库管理员指南。
创建包含Oracle密钥库支持文件的配置目录,并确保
keyring_okv_conf_dir
System变量设置为该目录的名称(有关详细信息,请参见keyring_okv通用配置).以具有“系统管理员”角色的用户登录Oracle密钥库管理控制台。
选择Endpoints选项卡到达Endpoints页面。在端点页面上,单击Add。
提供所需的端点信息并单击Register。端点类型应为Other。成功注册将产生注册令牌。
从Oracle密钥库服务器注销。
再次连接到Oracle密钥库服务器,这次不登录。使用端点注册令牌注册并请求
okvclient.jar
软件下载。将此文件保存到系统中。安装
okvclient.jar
使用以下命令(必须使用JDK 1.4或更高版本):Java -jar okvclient.jardir_name(- v)
后的目录名
- d
选项是安装解压缩文件的位置。的- v
选项,如果给定,则会生成在命令失败时可能有用的日志信息。当命令要求提供Oracle Key Vault端点密码时,不要提供密码。请按“Enter”。(结果是,当端点连接到Oracle密钥库时不需要密码。)
上述命令产生一个
okvclient.ora
文件,该文件应该位于目录下的此位置- d
选项。java jar命令:install_dir / conf / okvclient.ora
文件内容包括如下所示的行:
服务器=host_ip:port_numSTANDBY_SERVER =host_ip:port_num
的
keyring_okv
的主机上运行的服务器进行通信服务器
变量并回落到STANDBY_SERVER
如果失败了:为
服务器
变量的设置okvclient.ora
File是必选项。为
STANDBY_SERVER
变量的设置okvclient.ora
File是可选的。
进入Oracle Key Vault安装目录,运行以下命令测试安装情况:
okvutil / bin / okvutil列表
输出应该看起来像这样:
唯一ID类型标识符255AB8DE-C97F-482C-E053-0100007F28B9对称密钥- 264BF6E0-A20E-7C42-E053-0100007FB29C对称密钥-
对于一个新的Oracle密钥库服务器(一个没有任何密钥的服务器),输出看起来像这样,表明密钥库中没有密钥:
未发现任何物品
使用此命令提取
ssl
目录中包含来自okvclient.jar
文件:Jar xf okvclient.jar SSL
复制Oracle密钥库支持文件
okvclient.ora
文件和ssl
目录)放入配置目录。(可选)如果希望对密钥文件进行密码保护,请使用密码保护keyring_okv密钥文件.
完成上述操作后,请重新启动MySQL服务器。它加载keyring_okv
插件和keyring_okv
使用配置目录下的文件与Oracle密钥库通信。
金雅拓SafeNet KeySecure Appliance使用KMIP协议(版本1.1或1.2)。的keyring_okv
keyring插件(支持KMIP 1.1)可以使用KeySecure作为其KMIP后端来存储keyring。
使用以下步骤进行配置keyring_okv
和KeySecure一起工作。该描述仅总结了如何与KeySecure交互。详细信息请参见文档中的“添加KMIP服务器”一节KeySecure用户指南.
创建包含KeySecure支持文件的配置目录,并确保
keyring_okv_conf_dir
System变量设置为该目录的名称(有关详细信息,请参见keyring_okv通用配置).在配置目录下,创建名为
ssl
用于存储所需的SSL证书和密钥文件。在配置目录下,创建一个名为
okvclient.ora
.它应该有以下格式:服务器=host_ip:port_numSTANDBY_SERVER =host_ip:port_num
例如,如果KeySecure运行在主机198.51.100.20上,监听端口9002,则
okvclient.ora
文件看起来像这样:服务器= 198.51.100.20:9002 STANDBY_SERVER = 198.51.100.20:9002
以具有证书颁发机构访问凭据的管理员身份连接到KeySecure管理控制台。
进入“Security >> Local CA”,创建一个本地证书颁发机构。
进入“可信CA列表”。选择Default并单击Properties。然后选择Edit for Trusted Certificate Authority List并添加刚刚创建的CA。
下载CA并将其保存到
ssl
目录作为文件命名CA.pem
.导航到Security >> Certificate Requests并创建一个证书。然后你可以下载一个压缩文件焦油包含证书的PEM文件。
从下载的文件中提取PEM文件。例如,如果文件名为
csr_w_pk_pkcs8.gz
,使用以下命令解压并解包:Tar ZXVF csr_w_pk_pkcs8.gz
提取操作产生两个文件:
certificate_request.pem
和private_key_pkcs8.pem
.使用这个openssl命令解密私钥,并创建一个名为
key.pem
:Openssl pkcs8 -in private_key_pkcs8Pem -out key.pem
复制
key.pem
归档到ssl
目录中。将证书请求复制进来
certificate_request.pem
放到剪贴板上。导航到“安全>>本地ca”。选择您之前创建的同一个CA(您下载以创建
CA.pem
文件),并单击“签名请求”。从剪贴板粘贴“证书请求”,选择证书目的为“客户端”(密匙环是KeySecure的客户端),单击“签名请求”。结果是在新页面中使用所选CA签名的证书。将签名的证书复制到剪贴板,然后将剪贴板内容保存为名为
cert.pem
在ssl
目录中。(可选)如果希望对密钥文件进行密码保护,请使用密码保护keyring_okv密钥文件.
完成上述操作后,请重新启动MySQL服务器。它加载keyring_okv
插件和keyring_okv
使用其配置目录中的文件与KeySecure通信。
Townsend联盟密钥管理器使用KMIP协议。的keyring_okv
keyring插件可以使用Alliance Key Manager作为keyring存储的KMIP后端。有关其他信息,请参见MySQL联盟密钥管理器.
您可以选择使用密码保护密钥文件,并提供一个包含密码的文件,以便对密钥文件进行解密。为此,请将位置更改为ssl
目录并执行以下步骤:
加密
key.pem
关键文件。例如,使用这样的命令,并在提示处输入加密密码:$> openssl rsa -des3 -in keyPem -out key.pem.new Enter PEM pass phrase: Verifying - Enter PEM pass phrase:
将加密密码保存在单行文本文件中,文件名为
password.txt
在ssl
目录中。验证加密的密钥文件可以使用以下命令解密。解密后的文件应该显示在控制台上:
$> openssl rsa -in key.pem.new -passin file:password.txt
去掉原来的
key.pem
文件和重命名key.pem.new
来key.pem
.修改new的所有权和访问方式
key.pem
文件和password.txt
文件中的其他文件具有相同的限制ssl
目录中。