第 14 章 管理证书/密钥加密令牌


本章介绍了如何在加密令牌上管理证书/密钥令牌数据库的说明,特别是如何为各种场景导入和验证证书。

14.1. 关于 certutilPKICertImport

certutil 命令由网络安全服务(NSS)提供。certutil 用于验证和导入证书。下面介绍了使用 certutil 的基本概述,但 PKICertImport 是我们的打包程序脚本,用于安全地验证和导入证书。使用 certutil 执行此操作需要多个命令调用,正确的用法超出了本文档的范围。

14.1.1. certutil 基本用法

certutil [command] [opt][options]

每个 certutil 调用都使用命令标志,通常由大写字母表示,以及控制命令的作用的一系列选项。如果某个选项使用值,则该值将在 "<" 和 ">" 符号之间命名。

14.1.2. PKICertImport 基本用法

PKICertImport [opt][options]

每个 PKICertImport 调用都使用一系列选项来验证和导入指定的证书。与 certutil 的广泛用例不同,PKICertImport 仅专注于安全导入和验证证书。有关可用选项的更多信息,请参阅 第 14.1.4 节 “常见 certutilPKICertImport 选项”

注意

PKICertImport 在整个执行过程中多次提示输入 NSS DB 和/或 HSM 密码。这应该是 PKICertImport 必须多次与 NSS DB 交互。为避免必须重复输入 NSS DB 密码,请通过 < filename> 指定密码文件。完成后,请确保删除密码文件。

14.1.3. certutil 常用命令

以下命令特定于 certutil,并提供了几个常见命令的简要概述。PKICertImport 与 or 不兼容,也需要这些命令标志。

certutil -A

A 命令表示"添加"证书。它需要证书导入(-i)、该证书的别名(-n),以及证书的一系列信任标志(-t)。

certutil -V

-V 命令表示"验证"证书。它需要证书别名来验证(-n)以及要执行的验证类型(-u)。

certutil -D

-D 命令表示"删除"证书。它需要删除证书别名(-n)。

请注意,它只删除证书的 PUBLIC KEY 部分,如果存在,则 WILL 不会删除任何私钥。

certutil -M

-M 命令表示"修改"证书。它要求修改证书别名(-n),以及一系列信任标志(-t)来提供证书。

certutil -L

-L 命令表示"列出"证书或所有证书。如果指定 nickname 选项(-n),它将列出有关该证书的详细信息,否则它将列出所有存在的证书的一般信息。

certutil -L 的结果通过其 nickname 及其信任信息显示每个证书。例如:

表 14.1. 证书别名和信任信息
证书 Nickname信任属性 SSL, S/MIME, JAR/XPI

caSigningCert pki-ca1

CT, C, C

注意

certutil -L 显示的信任属性与使用 -t 选项指定的内容对应。

certutil -L 不修改数据库,因此可以根据需要多次执行。

14.1.4. 常见 certutilPKICertImport 选项

遵循以下步骤时,请确保值与您的特定部署场景相关且正确。其中许多选项也可用于 PKICertImport

-n <nickname>

a -n <nickname > 选项指定证书的 nickname。这可以是任何文本,仅用作证书的引用。它必须是唯一的。

根据您的配置更新这个值。

-d <directory>

-d <directory > 选项指定正在使用的 NSS DB 目录的路径。通常,我们假设您已在这个目录中,并使用 "." 引用当前目录。

根据您的配置更新这个值。

-t <trust>

-t <trust > 选项指定证书的信任级别。

信任有三种主要类别:

  • TLS 的信任
  • 对电子邮件的信任
  • 对象签名的信任

每个信任位置可以有一个或多个信任字母,用于指定所需的信任级别。我们使用以下的信任字母是 cCT

  • C 表示此证书应当是证书颁发机构(CA)。
  • c 表示这是签名服务器证书的可信证书颁发机构( C 表示小写的 c,因此您不需要同时指定两者)。
  • T 表示此证书是签名客户端证书的可信授权(T 表示小写的 c,因此您不需要同时指定 Tc)。

要为每个位置指定信任标志,请使用逗号分隔字母。例如,option -t CT,C,c 表示证书被信任为客户端和服务器 TLS 证书,签名服务器电子邮件证书(S/MIME),是对象签名(尽管不受信任的)的有效 CA。

  • 这样可确保如果此证书为另一个证书签名,则该证书用于对象签名,它将被视为无效。

使用、可以指定无信任(或缺少信任)。

要查看数据库中所有证书的信任级别,请运行:

  • certutil -L -d
  • 将列出每个证书的别名,并在行尾指定信任标志。

请参阅有关 the -h 选项中的 HSM 的备注。

请注意,在 certutil man page 中指定更多信任级别。要参考本文档,请在正确安装了 certutil 的系统中运行 man certutil 命令。

-h <HSM>

The -h <HSM > 选项指定要对其执行操作的 HSM 名称。

-H 选项与 the -t 选项不兼容,因为 HSM 无法存储信任。只有 NSS DB 可以存储信任,因此使用 certutil -A 命令或 certutil -M 命令与 < HSM&gt; 结合使用会失败。反之,在没有 a -h 选项的情况下,在单独的 certutil -M 命令中指定所需的信任级别。

根据您的配置更新这个值。

-e

-e 选项指定在与 certutil -V 命令结合使用时,也会检查签名的有效性。PKICertImport 始终执行证书签名请求验证,且不知道 -e 选项。

-a

a 选项指定问题中的密钥是 PEM (ASCII)格式。

-i <certificate>

The -i <certificate > 选项指定证书的路径。这仅用于 certutil -A 命令,以指定要导入的证书的路径。

根据您的配置更新这个值。

-u <usage>

-u <usage > 选项指定使用证书何时与 certutil -V 命令一起使用时进行验证。

以下部分介绍了几个使用字母。

  • -u C 代表验证客户端 TLS 证书。请注意,这主要接受任何证书,但会检查过期日期和签名。
  • -u V 代表验证服务器 TLS 证书。请注意,这将拒绝 CA 证书,并将检查过期日期和签名。
  • -u L 代表验证 CA TLS 证书。请注意,这将验证信任标志(查看是否存在 c ),并将检查密钥是 CA 密钥的密钥。这也检查过期和签名。
  • -u O 代表验证 OCSP 状态响应器证书。请注意,这会检查到期和签名。
  • -u J 代表验证对象签名证书。请注意,这会检查到期和签名。

如果指定了错误的 usage 选项,或者证书上的信任标记错误(如 CA TLS 证书的缺少 c 标志),certutil -V 将给出不正确的结果。

注意

在 certutil manpage 中指定更多用法选项。要参考本文档,请在正确安装 certutil 的系统中运行 man certutil 命令。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.