为 MC 生成证书和密钥
“证书签名请求 (CSR)”是在使用该证书的服务器上生成的加密文本块。您将证书签名请求发送到一个数字证书认证机构 (CA),用于申请数字身份证书。数字证书认证机构根据您证书上的信息使用证书签名请求创建您的安全套接层 (SSL) 证书;例如组织名称、常用(域)名、城市、国家。
管理控制台 (MC) 使用 OAuth(开放授权)、安全套接字层 (SSL) 和本地加密密码的组合,来保障用户浏览器和 MC 以及 MC 和 代理。身份验证通过 MC 发生,并发生在群集内的代理之间。代理也可对作业进行身份验证和授权。
MC 配置过程会自动设置 SSL,但您必须先在您的 Linux 环境中安装 openssl 程序包。
当通过客户端浏览器连接到 MC 时,Vertica 将为每个 HTTPS 请求分配一个包含时间戳的自签名证书。为增强安全性和防止密码重播攻击,时间戳仅在几秒钟内有效,随后就会过期。
为避免遭到 MC 阻拦,请同步 Vertica 群集内各个主机的时间,以及 MC 主机的时间(如果该主机位于专用服务器上)。要从丢失同步或缺乏同步中恢复,请重新同步系统时间和网络时间协议 (Network Time Protocol)。
创建证书并提交证书用于签名
在产品环境中,永远使用由数字证书认证机构签名的证书。您可以创建并提交证书,并且当数字证书认证机构返回证书时,将证书导入 MC。
使用 openssl 命令生成新的 CSR,在提示时输入密码“password”:
$ sudo openssl req -new -key /opt/vconsole/config/keystore.key -out server.csr
Enter pass phrase for /opt/vconsole/config/keystore.key:
您按下回车键 (Enter) 时,将会提示您输入即将纳入您的证书请求的信息。有些字段包含默认值,出于安全考虑,您需要进行更改。其他字段您可以不填写,比如密码和可选择的公司名称。留下空白字段,输入 '.'
。
重要
-key 选项的 keystore.key 值为密钥库创建私有密钥。如果您生成新的密钥并使用管理控制台界面将它导入,MC 程序不会正常重启。您必须还原原始的 keystore.jks 文件,并重启管理控制台。证书签名请求中包含此信息,并显示默认值和替换值:
Country Name (2 letter code) [GB]:USState or Province Name (full name) [Berkshire]:Massachusetts
Locality Name (eg, city) [Newbury]: Cambridge
Organization Name (eg, company) [My Company Ltd]:Vertica
Organizational Unit Name (eg, section) []:Information Management
Common Name (eg, your name or your server's hostname) []:console.vertica.com
Email Address []:mcadmin@vertica.com
常用名 (Commonn Name) 字段是您的服务器的完全限定域名。您的词条必须与您在网络浏览器上输入的内容完全匹配,否则您会收到名称不符合错误。
自签证书用于测试
为了测试您的新的安全套接层执行状态,条件允许情况下,您可以使用临时证书或您自己的内部数字证书认证机构,自签一份证书签名请求。
注意
自签的证书会产生基于浏览器的错误,提示您此份签名数字证书认证机构不存在,不可以信任。为了测试,请选择接受风险并继续。以下命令会生成一份临时证书,证书在 365 天以后到期:
$ sudo openssl x509 -req -days 365 -in server.csr -signkey /opt/vconsole/config/keystore.key -out server.crt
Enter passphrase for /opt/vconsole/config/keystore.key:
Enter same passphrase again:
之前的案例提示您通行短语。这是启动 Apache 必须的步骤。执行通行短语,您必须将安全套接层通行短语对话直接放在恰当的 Apache 配置文件中。更多详细信息,请参见 Apache 文档。
此案例说明到终端窗口的命令输出:
Signature oksubject=/C=US/ST=Massachusetts/L=Cambridge/O=Vertica/OU=IT/
CN=console.vertica.com/emailAddress=mcadmin@vertica.com
Getting Private key
您现在可以将自签名密钥 server.crt
导入管理控制台。
另请参阅
- 为 JDBC 客户端配置 TLS
- 为 JDBC 客户端配置 TLS