10.3. 导入中间证书链
在执行这些步骤时,请确保您的 Web 服务离线(停止、禁用等),并确保其他进程(如浏览器)不会并发访问 nssdb。这样做可能会破坏 nssdb,或导致不当使用这些证书。
如果您还没有导入并信任 root 证书,请参阅 第 10.2 节 “导入 root 证书”。
当给出 root 和最终服务器或客户端证书之间的一系列中间证书时,我们需要导入并验证签名的证书链,以便从最接近的 root CA 证书中处理。我们假设 Intermediate CA 位于名为 ca_sub_<num>.crt 的文件中(如 ca_sub_1.crt、ca_sub_2.crt 等等)。根据您的部署替换证书的名称和路径。
在不太可能的情况下,您会被改为获得一个名为 fullchain.crt、fullchain.pem 或类似证书的文件,并通过复制每个块来将其分成上述格式(通常包括 ----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- CERTIFICATE-----),将 -----END CERTIFICATE----- 标记复制到其自己的文件中。第一个应命名为 ca_sub_<num>.crt,最后一个将是名为 service.crt 的服务器证书。后续小节将讨论服务器证书。
首先,我们将导入并验证来自 root CA 证书的任何中间 CA。如果您没有,您可以跳过到下一部分。
有关以下使用的 certutil 和 PKICertImport 选项的详情,请参考 第 10.1 节 “关于 certutil 和 PKICertImport”。
流程
在开始前,请将目录改为 nssdb :
# cd /path/to/nssdb对于链中的每个中间证书,运行以下命令:
# PKICertImport -d . -n "CA Sub $num" -t "CT,C,C" -a -i ca_sub_$num.crt -u L此命令将验证并导入 Intermediate CA 证书到 nssdb 中。当没有输出错误消息且返回码为 0 时,验证成功。要检查返回代码,请在执行上述命令后立即执行
echo $?。在大多数情况下,会输出视觉错误消息。如果验证没有成功,请联络签发者并确保您的系统中存在所有中间证书和 root 证书。