certadd 命令

用途

certadd 将证书存储到本地 LDAP 资源库中。

语法

certadd [-c|-r] [-p privatekeystore] [-f file] -l label tag [username]

描述

certadd 命令将用户提供的证书存储在本地 LDAP 资源库中。

如果使用 -c(仅创建)选项,那么当用户名和标记对早已作为指定证书存在时,它将返回错误。 否则,现有的证书将被新证书取代。 如果使用 -r(仅替代)选项,那么当用户名和标记对未作为指定证书存在时,会返回错误。 这两个选项互斥。 缺省的行为是创建条目(当它不存在时)和替代现有证书(如果该条目存在)。

如果未给出 -f 选项,那么证书将会从标准输入读取。 证书是 DER 格式的。 certadd 命令限制为root用户或具有相应管理角色的用户 (当 username 参数不是当前用户时)。

必须总是指定 -l 选项。 此标签是一个可变长度文本字符串,将用于把密钥存储器中的密钥映射至包含匹配的公用密钥的证书。 当 certcreate 命令被调用时,请确保此标签与所指定的标签相同。

如果未提供 -p 选项,那么缺省值将为 file:/var/pki/security/keys/<用户名>。 如果未指定协议,那么将采用 文件: 。 当前仅有 file: 类型的 URI 是受支持的。 此命令的调用者有责任确保专用密钥存储器包含与证书中的公用密钥匹配的专用密钥。 如果使用 certcreate 命令创建了要添加的证书,那么专用密钥已经处于专用密钥存储器中。 或者,如果此证书是在外部创建的,用户可于稍后使用 keyadd 命令将同公用密钥关联的专用密钥添加至专用密钥存储器中。

tag 参数是来自与用户名相同的字符集的可变长度文本字符串,用于在由用户名所有的全部证书中唯一标识证书。 标记ALL将为 certlist 命令保留,以便可以查看用户拥有的所有证书,因此不能与 certadd 命令一起使用。 如果替换由用户的 auth_cert 属性指定的证书,那么也会返回错误。 当现有的证书被另一证书替代时,与被替代的证书相对应的密钥仍旧在密钥存储器中直至被用户删除。 可使用密钥管理命令将这些密钥从密钥存储器中除去。 同样地,可使用密钥管理命令将用于新证书的密钥再次添加至密钥存储器。 只能添加未撤销的证书,除非系统策略另外规定。

在节 crl 下的策略文件 /usr/lib/security/ pki/policy.cfg 中指定系统撤销检查策略。 当 check 属性设置为yes,根据 CRL 检查证书。 使用来自证书和来自 /usr/lib/security/pki/ca.cfg 文件的“证书撤销分布点”信息来获取证书撤销列表。 此文件具有被称为 crl 的条目,可使用该条目指定 CRL 检索的方法。 ldap: http:file: 检索方法是受支持的。 如果指定了多个 URI,必须对它们用空格进行定界。 如果无法检索到证书撤销列表,那么不会添加证书。

标志

描述
-c 添加新证书。
-r 替代现有证书。
-l 标签 为与证书中的公用密钥相匹配的专用密钥指定标签。
-p 私钥库 指定专用密钥存储器的位置。
-f 文件 指定包含 DER 编码证书的文件。

退出状态

描述
0 命令成功完成。
>0 发生错误。

安全性

这是一个特权 (set-UID root) 命令。

Root 和属于组安全性的调用者可为任何人添加证书。 非特权用户只能为他们自己添加证书。

审计

该命令记录下列事件信息:

CERT_Add <用户名>

示例

要将存储于 cert.der 中的证书添加至本地 LDAP 资源库并使之同用户 Bob 相关联,请输入:
$ certadd -c -f cert.der -l signcert cert1 bob
或者,
$ certadd -c -l signcert cert1 bob < cert.der
这样将从文件 cert.der 读取 DER 编码证书并将 signcert 指定为标签而 cert1 指定为标记,然后将它存储在 LDAP 中作为 Bob 的证书。 缺省的专用密钥存储器位置为 /var/pki/ security/keys/bob
要用另一证书替代 Bob 的 cert1 证书,请输入:
$ certadd -r -f newcert1.der -l newsigncert cert1 bob

文件

/usr/lib/security/pki/acct.cfg

/usr/lib/security/pki/ca.cfg

/usr/lib/security/pki/policy.cfg