14.3. 导入中间证书链
在执行这些步骤时,请确保您的 Web 服务离线(停止、禁用等),并确保其他进程(如浏览器)无法并发访问 NSS DB。这样做可能会损坏 NSS DB,或者不当使用这些证书。
如果您还没有导入并信任 root 证书,请参阅 第 14.2 节 “导入 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
的服务器证书。服务器证书将在后续小节中讨论。
首先,我们将导入并验证任何中间 CA,从而从 root CA 证书中最接近。如果您没有,您可以跳过到下一部分。
有关以下使用的 certutil
和 PKICertImport
选项的详情,请参考 第 14.1 节 “关于 certutil
和 PKICertImport
”。
流程
在开始前,请将目录改为 NSS DB:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd /path/to/nssdb
cd /path/to/nssdb
对于链中的每个中间证书,运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PKICertImport -d . -n "CA Sub $num" -t "CT,C,C" -a -i ca_sub_$num.crt -u L
PKICertImport -d . -n "CA Sub $num" -t "CT,C,C" -a -i ca_sub_$num.crt -u L
此命令将验证并导入中间 CA 证书到 NSS 数据库。如果没有打印错误消息,且返回码为 0 时,验证会成功。要检查返回代码,请在执行上述命令后立即执行
echo $?
。在大多数情况下,会输出视觉错误消息。如果验证没有成功,请联系签发者并确保系统中存在所有中间证书和 root 证书。