10.4. 硬件安全模块
本节提供有关如何将证书检测、查看和导入硬件加密模块(HSM)的信息。
10.4.1. 检测令牌 复制链接链接已复制到粘贴板!
安装证书系统后,若要查看是否可以检测到令牌,请使用 TokenInfo
实用程序,指向子系统实例 的别名
目录。安装证书系统软件包后,此工具可用。
例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个工具会返回证书系统可以检测到的所有令牌,而不仅仅是在证书系统中安装的令牌。
10.4.2. 查看令牌 复制链接链接已复制到粘贴板!
安装证书系统后,若要查看令牌列表,请使用 modutil
实用程序。
更改到实例别名目录。例如:
cd /var/lib/pki/pki-tomcat/alias
# cd /var/lib/pki/pki-tomcat/alias
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示有关安装的 PKCSGRESS 模块的信息,以及使用
modutil
工具有关相应令牌的信息。modutil -dbdir . -nocertdb -list
# modutil -dbdir . -nocertdb -list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.3. 将证书导入到 HSM 复制链接链接已复制到粘贴板!
以下流程描述了如何在获取新发布的证书(例如新签发或更新 TLS 服务器证书)后将证书导入到 HSM 中,其密钥是在与创建 CSR 相同的 HSM 令牌上生成的 HSM 令牌中。
通常,对于证书系统服务器,pkispawn
会在安装过程中负责所有系统证书创建和导入。但是,当实例需要替换其中一个系统证书时,这个过程仍很有用。
在这里,我们提供了将四种证书导入到 HSM 的示例:
- 服务器证书
- 客户端证书
- 对象签名证书:
- OCSP 响应签名证书
在开始前,请将目录改为 nssdb :
cd /path/to/nssdb
# cd /path/to/nssdb
例如:
cd /var/lib/pki/pki-ca/alias
# cd /var/lib/pki/pki-ca/alias
在执行这些步骤时,请确保您的 Web 服务离线(停止、禁用等),并确保其他进程(如浏览器)不会并发访问 nssdb。这样做可能会破坏 nssdb,或导致不当使用这些证书。
如果您还没有导入并信任 root 证书,请参阅 第 10.2 节 “导入 root 证书”。如果您还没有导入并验证中间证书,请参阅 第 10.3 节 “导入中间证书链”。
请注意,您遵循哪些指令将取决于问题中的证书的用法。
- 对于所有 PKI 子偏移的 TLS 服务器证书,请按照 服务器证书步骤。
- 对于任何子系统的审计签名证书,请按照以下步骤验证 对象签名证书。
-
对于 CA 子系统的签名证书,请按照上述步骤导入和验证 中间证书链,但仅用
caSigningCert
执行。 - 对于 CA 子系统的 OCSP 签名证书,请按照以下步骤验证 OCSP 证书。
- 对于 PKI 子系统的所有其他系统证书,请按照 客户端证书步骤操作。
有关以下使用的 certutil
和 PKICertImport
选项的详情,请参考 第 10.1 节 “关于 certutil
和 PKICertImport
”。
在 FIPS 模式中设置的系统上,PKICertImport
将返回 superfluous 错误消息,您可以忽略它(BZxetex93668):
certutil: could not change trust on certificate: SEC_ERROR_TOKEN_NOT_LOGGED_IN: The operation failed because the PKCS#11 token is not logged in. e: certutil returned non-zero value: 255 e: Unable to import certificate to NSS DB: ..
certutil: could not change trust on certificate: SEC_ERROR_TOKEN_NOT_LOGGED_IN: The operation failed because the PKCS#11 token is not logged in.
e: certutil returned non-zero value: 255
e: Unable to import certificate to NSS DB: ..
导入服务器证书:
PKICertImport -d . -h HSM -f password_file -n "host.name.example.com" -t "," -a -i service.crt -u V
此命令将验证并导入服务器证书到 HSM。当没有输出错误消息且返回码为 0 时,验证成功。要检查返回代码,请在执行上述命令后立即执行
echo $?
。在大多数情况下,会输出视觉错误消息。由于父证书或缺少 CA 信任链的过期(如缺少中间证书或缺少 CA Root),证书通常无法验证。如果验证没有成功,请联络签发者并确保您的系统中存在所有中间证书和 root 证书。
导入客户端证书:
PKICertImport -d . -h HSM -f password_file -n "client name" -t "," -a -i client.crt -u C
此命令将验证并导入客户端证书到 HSM。当没有输出错误消息且返回码为 0 时,验证成功。要检查返回代码,请在执行上述命令后立即执行
echo $?
。在大多数情况下,会输出视觉错误消息。如果验证没有成功,请联络签发者并确保您的系统中存在所有中间证书和 root 证书。
导入对象签名证书:
PKICertImport -d . -h HSM -f password_file -n "certificate name" -t ",P" -a -i objectsigning.crt -u J
此命令将验证并导入对象签名证书到 HSM。当没有输出错误消息且返回码为 0 时,验证成功。要检查返回代码,请在执行上述命令后立即执行
echo $?
。在大多数情况下,会输出视觉错误消息。如果验证没有成功,请联络签发者并确保您的系统中存在所有中间证书和 root 证书。
要导入 OCSP 响应签名证书:
PKICertImport -d . -h HSM -f password_file -n "certificate name" -t "," -a -i ocsp.crt -u O
这个命令会验证并将 OCSP 响应器证书导入到 HSM 中。当没有输出错误消息且返回码为 0 时,验证成功。要检查返回代码,请在执行上述命令后立即执行
echo $?
。在大多数情况下,会输出视觉错误消息。如果验证没有成功,请联络签发者并确保您的系统中存在所有中间证书和 root 证书。