certcreate 命令

用途

certcreate 请求新证书以用于指定的用户。

语法

certcreate [-S 服务名称] [-s 开始日期] [-e 结束日期] { -f 文件 | [-b | -t] } [-p 专用密钥库] -我 标签 [- subject_alt_name] 主题区分名称 [用户名]

描述

certcreate 命令调用最终实体服务和库,并请求使用包含在命令行上的标识性信息创建新证书。 由 -S 选项指定要使用的服务。 在 /usr/lib/security/pki/ca.cfg 中定义可用的服务。 不具有 -S 选项的证书请求可使用本地服务来创建。 指定不具有 /usr/lib/security/pki/ca.cfg 文件中的条目的服务名是错误的。 ca.cfg 文件中的服务条目指定了发送请求的 CA。

如果未给出 -s 选项,那么使用当天日期。 如果未给出 -e 选项,那么使用来自 policy.cfg 文件的有效值。 如果该值不存在,那么自开始日期以后的一年应该被用作有效期。 startdateenddate 的格式应与 chuser 命令使用的 expires 属性相同。 格式为 MMDDhhmmyy 格式的 10 个字符的字符串,其中 MM 表示月, DD 表示日, hh 表示小时, mm 表示分钟, yy 表示 1939 年到 2038 年的最后 2 个数字。 所有字符都是数字。

如果给出 -f 选项,那么新证书将是 DER 编码,并以二进制格式存储于指定文件中。 否则,它将是 DER 编码的并输出至 stdout,或者是二进制格式或者十六进制格式。 如果给出 -b 选项,那么输出将以二进制格式被显示到 stdout,否则它就是十六进制格式。 如果既未给出 -b 也未给出 -t,就使用二进制格式。

相应的专用密钥将存储在专用密钥存储器或设备中,如同底层命令或库所要求的那样。 如果给出了 -p 选项,那么专用密钥会存储于指定的专用密钥存储器中。 如果未提供 -p 选项,那么缺省值将为 /var/pki/ security/keys/<用户名>

必须指定 -l 选项。 此标签是一个可变长度文本字符串,将被用作专用密钥存储器中专用密钥的别名。

subject_alt_name 的值将是因特网电子邮件地址(RFC2459 将此定义为 rfc822Name)。 这个值是可选的。 如果未提供值,那么证书不具有 rfc822Name 主题备用名称扩展名。 Subject_distinguished_name 仅限于 PKI 证书的值的有效集。 它由 RFC2459 定义为一个 X.501 类型名称。

certcreate 命令发出一个或多个提示并请求密码,为的是生成证书并将它存储于用户的专用密钥存储器中。 如果用户有现存的密钥存储器,会对该用户发出一次提示要求输入密码。 如果密钥存储器不存在,那么会先创建一个并要求用户再次重新输入密码加以确认。 如果命令无法打开 /dev/tty 用于当前进程,它将失败。

标志

描述
-S 服务名称 指定用哪个服务模块。
-s 开始日期 指定证书生效的日期。
-e enddate 指定证书失效的日期。
-f 文件 指定存储证书的文件。
-p privatekeystore 指定专用密钥存储器的位置。
-l 标签 指定密钥存储器中专用密钥的标签。
-a subject_alt_name 指定证书所有者的主题备用名称。
-b 将证书数据的格式指定为二进制。
-t 将证书数据的格式指定为十六进制。

退出状态

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

安全性

这是一个 setuid 命令。

Root 和属于组安全性的调用者可为任何人创建证书。 非特权用户只能为自己创建证书,并且在指定专用密钥存储器位置时,使用以下规则:
  • 调用者可以指定缺省专用密钥库: /var/pki/security/keys/<用户名>
  • 调用者可以指定自己对其具有写访问权的专用密钥存储器。
非特权用户不能为其他用户请求证书。
审计

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

CERT_Create <用户名>

示例

$ certcreate -S local -s 0831112702 -e 1231235902 -f 
cert.der -p file:/home/bob/bob.priv -l signcert 
bob@ibm.com ou=finance,cn=Bob%20James bob
在前面的示例中,证书将从 2002 年 8 月 31 日上午 11:27 生效,直到 2002 年 12 月 31 日下午 11:59。 该证书放在文件 cert.der 中,而此专用密钥会存储于 bob.priv 中,其别名为 signcert
以下示例将缺省值用于开始日期、结束日期和专用密钥存储器。
$ certcreate -l signcert bob@ibm.com ou=finance,cn=Bob James > cert.der

文件

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

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