生成密钥库和信任库:共享管理员密钥

本节展示了共享管理密钥模型的密钥库和信任库的生成。 还展示了在Nuodb管理进程(AP)的所有主机上安装密钥库和信任库的相同副本,以及生成Nuodb命令PEM文件。

PASSWD 是一个包含密码值的环境变量。

The following commands must be run as a user who has write access to /etc/nuodb/keys.

1.生成用于所有Nuodb AP的密钥对证书。

nuocmd create keypair --keystore nuoadmin.p12 --store-password "$PASSWD" --ca

2.将步骤1生成的管理证书导入到信任库中。

nuocmd import certificate --keystore nuoadmin.p12 --store-password "$PASSWD" \
    --truststore nuoadmin-truststore.p12 --truststore-password "$PASSWD"

3.生成由Nuodb命令客户端使用的证书。

nuocmd create keypair --keystore nuocmd.p12 --store-password "$PASSWD" --dname "CN=nuocmd"

4.将生成的客户端证书导入(步骤3)到创建的信任库中(步骤2)。

nuocmd import certificate --keystore nuocmd.p12 --store-password "$PASSWD" \
    --truststore nuoadmin-truststore.p12 --truststore-password "$PASSWD"

5.将客户端密钥和证书转换为PEM格式,以便可以通过Nuodb命令使用它。

nuocmd show certificate --keystore nuocmd.p12 --store-password "$PASSWD" > nuocmd.pem

6.将管理员证书转换为PEM格式,以便Nuodb命令使用它。

nuocmd show certificate --keystore nuoadmin.p12 --store-password "$PASSWD" --cert-only > nuoadmin.cert

7. 对于运行AP的每个主机,将所需的证书文件复制到NOODB配置目录。

cp nuoadmin.p12 nuoadmin-truststore.p12 nuocmd.pem nuoadmin.cert /etc/nuodb/keys
chown -R nuodb:nuodb /etc/nuodb/keys

8. 对于运行AP的每个主机, update nuoadmin.conf so that TLS is enabled and the generated certificates files are specified.

...
"ssl": "true",
"keystore": "/etc/nuodb/keys/nuoadmin.p12",
"keystore-type": "PKCS12",
"keystore-password": "<PASSWD value>",
"truststore": "/etc/nuodb/keys/nuoadmin-truststore.p12",
"truststore-type": "PKCS12",
"truststore-password": "<PASSWD value>",
...

For more information on nuoadmin.conf properties, see 主机属性(nuoadmin.conf).

9. 对于运行AP的每个主机,关闭并重新启动Nuodb AP,以便配置更改生效。

service nuoadmin restart

10. Set the NUOCMD_CLIENT_KEY and NUOCMD_VERIFY_SERVER environment variables to allow NuoDB Command to authenticate itself and verify NuoDB APs using HTTPS.

设置变量:

export NUOCMD_CLIENT_KEY=/etc/nuodb/keys/nuocmd.pem
export NUOCMD_VERIFY_SERVER=/etc/nuodb/keys/nuoadmin.cert

验证客户端是否可以与Nuodb管理员通信:

nuocmd show domain

获取证书数据以验证已启用TLS:

nuocmd --show-json get certificate-info