1.2. Directory 服务器如何解锁 NSS 数据库

目录服务器在网络安全服务(NSS)数据库中存储证书签名请求(CSR)、私钥和证书。安装新实例时,安装程序会自动创建 NSS 数据库并使用随机密码对其进行保护。安装程序在以下文件中存储这个密码:

  • /etc/dirsrv/slapd-instance_name/pwdfile.txt: dsconf tls 命令使用此文件来访问 NSS 数据库。
  • /etc/dirsrv/slapd-instance_name/pin.txt :此文件包含令牌和密码,以便在 Directory 服务器启动时自动解锁 NSS 数据库。

    • 如果您希望 Directory 服务器在每次启动实例时提示输入 NSS 数据库密码,请删除此文件。
    • 如果您希望实例在不提示输入密码的情况下自动启动,请保留此文件并在更改 NSS 数据库密码时更新该文件。

如果 /etc/dirsrv/slapd-instance_name/pin.txt 文件不存在,您启动 Directory Server (启用加密)并在 NSS 数据库中设置密码,其行为如下:

  • 如果 systemctl or dsctl 实用程序启动 ns-slapd Directory Server 进程,systemd 服务会提示输入密码,并将输入自动传递给 systemd-tty-ask-password-agent 程序:

    # dsctl instance_name start
    Enter PIN for Internal (Software) Token: (press TAB for no echo)
  • 在个别情况下,当 ns-slapd Directory Server 进程没有由 systemctldsctl 程序启动,并且进程从终端分离时,N ns-slapd 使用 wall 命令将消息发送到所有终端:

    Broadcast message from root@server (Fri 2021-01-01 06:00:00 CET):
    
    Password entry required for 'Enter PIN for Internal (Software) Token:' (PID 1234).
    Please enter password with the systemd-tty-ask-password-agent tool!

    要输入密码:

    # systemd-tty-ask-password-agent
    Enter PIN for Internal (Software) Token: