14.3. 管理系统密码
如 第 2.3.10 节 “密码和 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)
14.3.1. 配置 password.conf 文件
注意
默认情况下,密码存储在子系统
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-NHSM-CONN-XC=MyHSM$S8cret
password.conf
文件的内容示例:
internal=376577078151 internaldb=secret12 replicationdb=1535106826 hardware-NHSM-CONN-XC=MyHSM$S8cret
14.3.2. 使用证书系统 Watchdog 服务
在证书系统中,watchdog 服务用于启动需要密码访问安全数据库的服务,以便启动。如果需要不要在系统中存储未加密的密码,则 watchdog 服务:
- 在服务器启动期间提示输入相关密码并缓存它们。
- 当服务器因为崩溃而自动重启时,请使用缓存的密码。
14.3.2.1. 启用 Watchdog 服务
启用 watchdog 服务:
- 如果要在此主机上使用 Shared Secret 功能,请启用 Shared Secret 功能,如 第 14.8.3 节 “启用 CMC 共享 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) man page。 - 默认情况下,
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
- (可选):请参阅 第 14.3.2.3 节 “验证证书系统 Watchdog 服务是否已启用”。
- 要启动证书系统实例,请运行以下命令并输入提示的密码:
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
14.3.2.2. 使用启用 Watchdog 启动和停止证书系统
有关如何管理证书系统实例的详情,请参考 第 2.2.3 节 “执行管理(systemctl)”。
14.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"
14.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) man page。 - 将
password.conf
文件恢复到其原始位置。例如:# cp /root/password.conf.bak /var/lib/pki/instance_name/conf/password.conf
- 启动证书系统实例:
# systemctl start pki-tomcatd@instance_name.service