Veritas NetBackup™ Appliance 安全指南
实施第三方 SSL 证书
使用本节中的步骤手动部署和配置 NetBackup Appliance 层的外部证书。必须为 NetBackup 和 NetBackup Appliance 部署相同的外部证书。请注意,不支持为 NetBackup 和 NetBackup Appliance 层部署单独的证书。
有关 NetBackup Appliance 中使用的不同类型的证书,请参考下表。
表:第三方证书的类型
证书类型 |
描述 |
---|---|
Appliance 主机证书 |
Appliance 主机证书基于 X.509 或 PKCS#7 标准。证书以 DER(二进制)或 PEM(文本)格式进行编码。Veritas 建议您使用长度至少为 2048 位的 RSA 公钥和私钥。 注意: 确保证书使用者字段的 CN 部分指定 Appliance 的完全限定主机名 SubjectAlternativeName 证书扩展名必须包含所有设备主机名和 IP 地址,通过这些主机名和 IP 地址可以访问该设备。必须包括完全限定主机名和短名称。 |
设备主机私钥(对应于主机证书) |
设备主机私钥必须采用 PKCS#8 标准,并且以 PEM 格式进行编码。建议使用 appliance 作为加密密码。在升级期间替换证书后,使用任何其他密码可能会导致在连接到 MongoDB 时出现问题。 |
(可选)中间 CA 证书 |
中间 CA 证书是从设备主机证书到根 CA 证书的证书链。仅当主机证书由根 CA 以外的 CA 颁发时,才需要这些证书。 |
根 CA 证书 |
其中包括设备证书链及其对等方的根 CA 证书。如果设备需要与具有来自不同证书颁发机构的证书的主机进行交互,则必须在名为 cacerts.pem 的文件中准备好所有这些中间 CA 证书和根 CA 证书。 |
注意:
设备主机证书、私钥及其中间 CA 证书可以在同一个 PEM 文件中。
在安装第三方证书之前,请确保您已通读了先决条件并执行了必要的步骤。
要在 NetBackup Appliance 中实施第三方证书,必须以 root 帐户身份登录。确保您有权访问 maintenance 帐户、覆盖 Symantec Data Center Security 以及使用 root 帐户登录。
为防止错误,请确保证书文件满足以下条件:
所有证书文件必须具有
.pem
或.cer
后缀,并在证书开头包含 “-----BEGIN CERTIFICATE-----”。所有证书文件中证书的使用者备用名称 (SAN) 字段必须包含主机名和 FQDN。如果在 HA 环境中使用证书,则 SAN 字段必须包含 VIP、主机名和 FQDN。
使用者名称和公用名称字段不能留空。
每个主机的使用者字段必须唯一。
使用者字段最多可包含 255 个字符。
必须在证书中设置服务器和客户端身份验证属性。
证书的使用者和 SAN 字段中只能使用 ASCII 7 字符。
私钥必须采用 PKCS#8 PEM 格式,并且必须以标头行 -----BEGIN ENCRYPTED PRIVATE KEY----- 或 -----BEGIN PRIVATE KEY----- 开头
NetBackup Appliance 的 Web 服务使用 PKCS#12 标准,并要求证书文件采用 X.509 (.pem) 格式。如果获取的证书和私钥采用任何其他格式,则必须先将其转换为 X.509 (.pem) 格式。有关借助 OpenSSL 将证书文件转换为所需格式的步骤,请参见下表。可从 http://www.openssl.org 下载 OpenSSL。
表:将证书文件转换为所需格式的过程
证书文件格式 |
证书文件后缀 |
将证书文件转换为所需格式的过程 |
---|---|---|
DER |
.DER 或 .der |
使用以下命令将 DER 格式转换为 X.509 (.pem) 格式: openssl x509 -inform der -in cert.der -outform pem -out cert.pem |
.p7b |
如果证书文件不包含 "---BEGIN PKCS7—" 字符串,请使用以下命令将其转换为 X.509 (.pem) 格式: openssl pkcs7 -inform der -in cacerts.der.p7b -out cacerts.p7b openssl pkcs7 -print_certs -in cacerts.p7b -out cacerts.pem | |
p7b |
.p7b |
如果证书文件包含 "---BEGIN PKCS7—" 字符串,请使用以下命令将其转换为 X.509 (.pem) 格式: openssl pkcs7 -print_certs -in cacerts.p7b -out cacerts.pem |
假设设备主机证书、设备主机私钥和根 CA 证书文件分别命名为 server.pem、serverkey.pem 和 cacerts.pem,请执行以下步骤以在 NetBackup Appliance 中配置第三方证书。
第三方证书存储在 Java KeyStore (JKS) 中。Java KeyStore (JKS) 是安全证书存储库,供基于 Java 的服务(例如 Tomcat Web 服务器)使用。
根 CA SSL 证书将加载到 NetBackup 网页管理操作界面使用的 Java 信任存储区中。此信任存储区是 NetBackup 目录库备份的一部分。
要将证书文件安装到 NetBackup Appliance 中的现有 Java KeyStore 和信任存储区,请执行以下步骤:
- 使用 SSH 登录到 maintenance 帐户,并覆盖 Symantec Data Center Security 防护。
- 使用 root 帐户登录到 Appliance。
- 将设备主机证书、私钥和 CA 证书文件复制到临时目录,例如
/tmp
。 - 确保所有证书文件都采用 X.509 PEM 格式。这些文件通常具有
.pem
或.cer
后缀,并且在证书开头包含标头行 -----BEGIN CERTIFICATE-----,请参见 - 使用 CA 证书文件 cacerts.pem 将 PEM 格式 X.509 证书 (server.pem) 和私钥 (serverkey.pem) 转换为 PKCS#12 格式。键入以下命令:
openssl pkcs12 -export -in server.pem -inkey serverkey.pem -out server.p12 -name tomcat -CAfile cacerts.pem -caname root
注意:
当 OpenSSL 命令提示输入导入密码时,请键入私钥的密码。当它提示输入导出密码时,请键入 appliance。
- 将 NetBackup Appliance 的 Web 服务 KeyStore 文件复制到您的工作目录,如下所示:
cp /opt/apache-tomcat/security/keystore ./keystore
- 要将 PKCS#12 文件 (server.p12) 导入到 Java KeyStore,请键入以下命令:keytool -importkeystore -deststorepass appliance -destkeypass appliance -destkeystore keystore -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass appliance -alias tomcat
为防止发生任何异常,请确保执行以下操作:
指定 appliance 作为 -deststorepass 和 -destkeypass 选项的密码。请注意,密码仅支持字母数字字符。
为 -alias 选项指定 tomcat。
- 运行以下命令以确保所有 DNS 值都正确应用于 Java KeyStore 中的条目。
keytool -list -v -alias tomcat -keystore keystore -storepass appliance
- 在 cacerts.pem 证书颁发机构 (CA) 证书文件的底部,确保已包含可过渡到根 CA 证书的中间 CA 证书链(如果有)。
- 将 CA 证书文件
cacerts.pem
导入到 Java 信任存储区。Java 信任存储区供 NetBackup 网页管理操作界面使用。键入以下命令:keytool -import -noprompt -trustcacerts -file cacerts.pem -alias vxosrootcachain -keystore keystore -storepass appliance
如果
cacerts.pem
文件由多个中间 CA 证书组成,请确保按照证书中的 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 标记指示将证书拆分为单独的文件。然后,您可以为每个 CA 证书文件单独运行该命令。keytool -import -noprompt -trustcacerts -file cacertn.pem alias vxosrootcachain[n] -keystore keystore -storepass appliance
其中,cacertn 表示每个单独的证书文件(例如,cacert1.pem、cacert2.pem、... 、cacertn.pem)。
要关闭数据库和相关 Web 服务,请键入以下命令:
systemctl stop nginx service as-alertmanager stop service as-analyzer stop service as-transmission stop /opt/IMAppliance/scripts/infraservices.sh webserver stop /opt/IMAppliance/scripts/infraservices.sh database stop
要在 Tomcat Web 服务器中安装新的 KeyStore,请执行以下步骤:
- 使用以下命令备份现有 Web 服务器 KeyStore 文件
cp /opt/apache-tomcat/security/keystore /opt/apache-tomcat/security/keystore.orig
- 将现有 KeyStore 文件替换为新的 KeyStore 文件:
cp ./keystore /opt/apache-tomcat/security/keystore
- 使用以下命令设置新 KeyStore 文件的权限:
chmod 700 /opt/apache-tomcat/security chmod 600 /opt/apache-tomcat/security/keystore chown –R tomcat:tomcat /opt/apache-tomcat/security
执行以下步骤:
- 将证书文件复制到 /etc/vxos-ssl/servers/certs。
cp serverkey.pem /etc/vxos-ssl/servers/certs cp server.pem /etc/vxos-ssl/servers/certs cp cacerts.pem /etc/vxos-ssl/servers/certs
- 将私钥 (serverkey.pem) 和证书 (server.pem) 连接起来。
cat /etc/vxos-ssl/servers/certs/server.pem >> /etc/vxos-ssl/servers/certs/serverkey.pem
- 设置证书文件所需的文件权限,如下所示:
chown root:infra /etc/vxos-ssl/servers/certs/serverkey.pem chown root:infra /etc/vxos-ssl/servers/certs/server.pem chown root:infra /etc/vxos-ssl/servers/certs/cacerts.pem chmod 440 /etc/vxos-ssl/servers/certs/serverkey.pem chmod 440 /etc/vxos-ssl/servers/certs/server.pem chmod 440 /etc/vxos-ssl/servers/certs/cacerts.pem
要在 MongoDB 中配置第三方 SSL 证书,请执行以下步骤:
- 将私钥 (serverkey.pem) 和证书 (server.pem) 连接起来。
cat /etc/vxos-ssl/servers/certs/server.pem >> /etc/vxos-ssl/servers/certs/serverkey.pem
- 在
/etc/mongod.conf
中编辑包含 PEMKeyFile 的行,然后添加/etc/vxos-ssl/servers/certs/serverkey.pem
。 - 在
/etc/mongod.conf
中编辑包含 PEMKeyPassword 的行,然后添加私钥的密码。 - 编辑
/etc/mongod.conf
,然后添加以下内容:server_cert=/etc/vxos-ssl/servers/certs/serverkey.pem client_cert=/etc/vxos-ssl/servers/certs/cacerts.pem pem_password=<passphrase of the private key>
- 键入以下命令以启动 mongodb 和 Web 服务:
/opt/IMAppliance/scripts/infraservices.sh database start /opt/IMAppliance/scripts/infraservices.sh webserver start
要在 NGINX 网关中配置第三方 SSL 证书,请执行以下步骤:
- 确保
/etc/nginx/conf.d/appsol.conf
是可写的。编辑包含 ssl_certificate 和 ssl_certificate_key 的行,以指向证书和私钥(与证书连接):
ssl_certificate /etc/vxos-ssl/servers/certs/server.pem; ssl_certificate_key /etc/vxos-ssl/servers/certs/serverkey.pem;
- 确保
/etc/nginx/locations/appsol.conf
是可写的。编辑包含 proxy_ssl_certificate 和 proxy_ssl_certificate_key 的行,以指向证书和私钥(与证书连接):
proxy_ssl_certificate /etc/vxos-ssl/servers/certs/server.pem; proxy_ssl_certificate_key /etc/vxos-ssl/servers/certs/serverkey.pem;
- 键入以下命令以启动 NGINX 服务器:
systemctl start nginx
键入以下命令以启动自动支持服务:
service as-alertmanager start service as-analyzer start service as-transmission start
在 NetBackup Appliance 介质服务器上应用的每个第三方 CA SSL 证书也必须部署在关联的 NetBackup Appliance 主服务器上。
对于部署在其关联介质服务器上的每个第三方根 CA SSL 证书,请确保在主服务器上运行以下命令。
对于基于 UNIX 的 NetBackup Appliance 主服务器,请运行以下命令:
/usr/openv/java/jre/bin/keytool -importcert -storepass `cat /usr/openv/var/global/jkskey` -keystore /usr/openv/var/global/wsl/credentials/truststoreMSDP -file <path to root CA certificate file> -alias <descriptive label for root CA certificate>
对于基于 Windows 的 NetBackup Appliance 主服务器,请使用文本编辑器、shell 或命令实用程序(如 type)来读取存储在
\Program Files\Veritas\NetBackup\var\global\jkskey
中的jkskey
文件。运行以下命令以替换 KeyStore 密码:\Program Files\Veritas\NetBackup\jre\bin\keytool" -importcert -keystore "C:\Program Files\Veritas\NetBackup\var\global\wsl\credentials\truststoreMSDP" -storepass <keystore password> -file "<path to root CA certificate file>" -alias <descriptive label for root CA certificate>
注意:
jkskey
文件包含由 NetBackup 网页管理操作界面使用的 Java KeyStore 文件的 NetBackup 密码。对jkskey
文件所做的任何更改都可能导致系统故障。