13.3. 管理系统密码
如 第 2.3.9 节 “密码和 watchdog (nuxwdog)” 所述,证书系统使用密码绑定到服务器,或者在服务器启动时解锁令牌。
password.conf
文件以纯文本形式存储系统密码。但是,有些管理员更喜欢完全删除密码文件,以允许 nuxwdog
完全提示每个密码的手动输入,并在计划外关闭时存储 auto-restart。
当证书系统实例启动时,子系统会自动检查 password.conf
文件。如果文件存在,则使用这些密码连接到其他服务,如内部 LDAP 数据库。如果该文件不存在,则 watchdog 守护进程会提示输入 PKI 服务器启动所需的所有密码。
如果存在 password.conf
文件,子系统会假定存在所有必需的密码,并以明文正确格式化。如果任何密码缺失或格式错误,则系统无法正确启动。
所需的密码列在 CS.cfg
文件中的 cms.passwordlist
参数中:
cms.passwordlist=internaldb,replicationdb,CA LDAP Publishing cms.password.ignore.publishing.failure=true
cms.password.ignore.publishing.failure
参数允许 CA 子系统成功启动,即使它有与其中一个 LDAP 发布目录的连接失败。
对于 CA、KRA、OCSP 和 TKS 子系统,默认的预期密码是:
-
NSS 数据库
的内部
-
内部 LDAP 数据库的
internaldb
-
replicationdb
用于复制密码 任何用于访问用于发布的外部 LDAP 数据库的密码(仅限 CA)
注意如果在
password.conf
文件被删除后配置了发布者,则不会将任何内容写入password.conf
文件。除非配置了nuxwdog
,否则服务器将无法访问实例下次重启时的新发布密码。- 任何外部硬件令牌密码
对于 TPS,这提示输入三个密码:
-
NSS 数据库
的内部
-
内部 LDAP 数据库的
tokendbpass
- 任何外部硬件令牌密码
本节论述了为证书系统提供用来检索这些密码的两个机制:
-
password.conf
文件(默认) - nuxwdog (watchdog)
13.3.1. 配置 password.conf 文件
本节仅供参考。正确和安全操作必须涉及使用 nuxwdog
watchdog。请参阅 第 13.3.2 节 “使用证书系统 watchdog 服务” 启用 nuxwdog
,因为完全合规需要它。
默认情况下,密码存储在子系统 conf/
目录中的纯文本文件 password.conf
中。因此,只需通过文本编辑器修改它们。
此文件中存储的密码列表包括:
- 证书系统实例用于访问和更新内部数据库的绑定密码。
- HSM 的密码
- 证书系统实例用来访问身份验证目录的绑定密码,以防 CMC 共享文件系统服务。
- 子系统用来访问和更新 LDAP 发布目录的绑定密码;这只有在为发布证书进行了配置并且 CRL 到 LDAP 兼容目录时才需要。
- 子系统使用的绑定密码来访问其复制数据库。
- 对于 TPS 实例,用于访问和更新令牌数据库的绑定密码。
password.conf
文件还包含打开子系统私钥所需的令牌密码。
用于子系统的名称和位置密码文件在 CS.cfg
文件中配置:
passwordFile=/var/lib/pki/ instance_name/conf/password.conf
内部密码存储和复制数据库具有随机生成的 PIN,这些 PIN 在安装和配置子系统时设置;在配置实例时管理员定义了内部 LDAP 数据库密码。
password.conf
文件中的密码条目采用以下格式:
name=password
例如:
internal=413691159497
如果需要 HSM 令牌,请使用以下格式:
hardware-name=password
例如:
hardware-NHSM6000=MyHSM$S8cret
password.conf
文件的内容示例:
internal=376577078151 internaldb=secret12 replicationdb=1535106826 hardware-NHSM6000=MyHSM$S8cret
13.3.2. 使用证书系统 watchdog 服务
在证书系统中,watchdog 服务用于启动需要密码访问安全数据库的服务,以便启动。如果需要不要在系统中存储未加密的密码,则 watchdog 服务:
- 在服务器启动期间提示输入相关密码并缓存它们。
- 当服务器因为崩溃而自动重启时,请使用缓存的密码。
13.3.2.1. 启用 watchdog 服务
启用 watchdog 服务:
- 如果要在此主机上使用 Shared Secret 功能,请启用 Shared Secret 功能,如 第 13.7.8 节 “启用 CMC Shared Secret 功能” 所述。
从
/var/lib/pki/ instance_name/conf/
目录中备份server.xml
和password.conf
文件。例如:# cp -p /var/lib/pki/ instance_name/conf/server.xml /root/ # cp -p /var/lib/pki/ instance_name/conf/password.conf /root/
停止并禁用证书系统实例的服务:
# systemctl stop pki-tomcatd@instance_name.service # systemctl disable pki-tomcatd@instance_name.service
如果您使用硬件安全模块(HSM),请启用 watchdog 服务来提示输入硬件令牌的密码:
显示硬件令牌的名称:
# egrep "^hardware-" /var/lib/pki/ instance_name/conf/password.conf hardware-HSM_token_name=password
上例中突出显示的字符串是硬件令牌名称。
将
cms.tokenList
参数添加到/var/lib/pki/ instance_name/conf/ca/CS.cfg
文件中,并将其设置为硬件令牌的名称。例如:cms.tokenList=HMS_token_name
为实例启用 watchdog 配置:
# pki-server instance-nuxwdog-enable instance_name
或者,为所有实例启用 watchdog:
# pki-server nuxwdog-enable
详情请查看
pki-server-nuxwdog (8)
手册页。默认情况下,
nuxwdog
作为在/etc/sysconfig/pki-tomcat
文件中的TOMCAT_USER
变量中配置的用户启动服务器。另外,要修改用户和组:将实例的 watchdog
systemd
单元文件复制到/etc/systemd/system/
目录中:# cp -p /usr/lib/systemd/system/instance_name-nuxwdog@.service /etc/systemd/system/
注意/etc/systemd/system/
目录中的单元文件具有更高的优先级,且在更新过程中不会被替换。将以下条目添加到
/etc/pki/ instance_name/nuxwdog.conf
文件中的[Service]
部分:User new_user_name
重新载入
systemd
配置:# systemctl daemon-reload
启用使用 watchdog 的证书系统服务:
# systemctl enable pki-tomcatd-nuxwdog@instance_name.service
- 可选:请参阅 第 13.3.2.3 节 “验证证书系统 watchdog 服务是否已启用”。
要启动证书系统实例,请运行以下命令并输入提示的密码:
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
13.3.2.2. 在启用了 watchdog 的情况下启动和停止证书系统
有关如何管理证书系统实例的详情,请参考 第 2.2.3 节 “执行管理(systemctl)”。
13.3.2.3. 验证证书系统 watchdog 服务是否已启用
验证 watchdog 服务是否已启用:
验证
pki-tomcatd-nuxwdog
服务是否已启用:# systemctl is-enabled pki-tomcatd-nuxwdog@instance_name.service enabled
验证
pki-tomcatd
服务是否已禁用:# systemctl is-disabled pki-tomcatd@instance_name.service disabled
在
/etc/pki/ instance_name/server.xml
文件中:验证
passwordFile
参数是否指向CS.cfg
文件。例如:passwordFile="/var/lib/pki/ instance_name/ca/CS.cfg"
验证
passwordClass
参数设置为 com.netscape.cms.tomcat.NuxwdogPasswordStore :passwordClass="com.netscape.cms.tomcat.NuxwdogPasswordStore"
13.3.2.4. 禁用 watchdog 服务
禁用 watchdog 服务:
停止并禁用使用 watchdog 的证书系统实例的服务:
# systemctl stop pki-tomcatd-nuxwdog@instance_name.service # systemctl disable pki-tomcatd-nuxwdog@instance_name.service
在不监视实例的情况下启用常规服务:
# pki-server instance-nuxwdog-disable instance_name
禁用实例的 watchdog 配置:
# systemctl enable pki-tomcatd@instance_name.service
详情请查看
pki-server-nuxwdog (8)
手册页。将
password.conf
文件恢复到其原始位置。例如:# cp /root/password.conf.bak /var/lib/pki/ instance_name/conf/password.conf
启动证书系统实例:
# systemctl start pki-tomcatd@instance_name.service