certcreate 请求新证书以用于指定的用户。
certcreate [-S servicename] [-s startdate] [-e enddate] { -f file | [-b | -t] } [-p privatekeystore] -l label [-a subject_alt_name] subject_distinguished_name [user-name]
certcreate 命令调用最终实体服务和库,并请求使用包含在命令行上的标识性信息创建新证书。由 -S 选项指定要使用的服务。在 /usr/lib/security/pki/ca.cfg 中定义可用的服务。不具有 -S 选项的证书请求使用本地服务来创建。指定不具有 /usr/lib/security/pki/ca.cfg 文件中的条目的服务名是错误的。ca.cfg 文件中的服务条目指定了发送请求的 CA。
如果未给出 -s 选项,则使用当天日期。如果未给出 -e 选项,则使用来自 policy.cfg 文件的有效值。如果该值不存在,那么自开始日期以后的一年应该被用作有效期。startdate 和 enddate 具有与 chuser 命令使用的 expires 属性相同的格式。格式为 MMDDhhmmyy 形式的 10 个字符的字符串,其中 MM 是指月份,DD 是指日,hh 是指小时,mm 是指分钟而 yy 是指 1939 到 2038 年中任意年份的后两位数字。所有字符都是数字。
如果给出 -f 选项,则新证书将是 DER 编码,并以二进制格式存储于命名的文件中。否则,它将是 DER 编码的并输出至 stdout,或者是二进制格式或者十六进制格式。如果给出 -b 选项,那么输出将以二进制格式被显示到 stdout,否则它就是十六进制格式。如果既未给出 -b 也未给出 -t,就使用二进制格式。
相应的专用密钥将存储在专用密钥存储器或设备中,如同底层命令或库所要求的那样。如果给出了 -p 选项,则专用密钥会存储于指定的专用密钥存储器中。如果未给出 -p 选项,则缺省值为 /var/pki/ security/keys/<username>。
必须指定 -l 选项。此标签是一个可变长度文本字符串,将被用作专用密钥存储器中专用密钥的别名。
subject_alt_name 的值将是因特网电子邮件地址(RFC2459 将此定义为 rfc822Name)。该值是可选的。如果未提供值,则证书不具有 rfc822Name 主题备用名称扩展名。Subject_distinguished_name 仅限于 PKI 证书的值的有效集。它由 RFC2459 定义为一个 X.501 类型名称。
certcreate 命令发出一个或多个提示并请求密码,为的是生成证书并将它存储于用户的专用密钥存储器中。如果用户有现存的密钥存储器,会对该用户发出一次提示要求输入密码。如果密钥存储器不存在,则会先创建一个并要求用户再次重新输入密码加以确认。如果命令无法打开 /dev/tty 用于当前进程,它将失败。
-S servicename | 指定要使用的服务模块。 |
-s startdate | 指定证书生效的日期。 |
-e enddate | 指定证书失效的日期。 |
-f file | 指定存储证书的文件。 |
-p privatekeystore | 指定专用密钥存储器的位置。 |
-l label | 指定密钥存储器中专用密钥的标签。 |
-a subject_alt_name | 指定证书所有者的主题备用名称。 |
-b | 将证书数据的格式指定为二进制。 |
-t | 将证书数据的格式指定为十六进制。 |
0 | 命令成功完成。 |
>0 | 发生一个错误。 |
这是一个 setuid 命令。
Root 和属于组安全性的调用者可为任何人创建证书。非特权用户只能为自己创建证书,并且在指定专用密钥存储器位置时,使用以下规则:
非特权用户不能为其他用户请求证书。
此命令记录以下事件信息:
CERT_Create <username>
$ 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
certadd、certdelete、certget、certlink、certlist、certrevoke、certverify、keyadd、keydelete、keylist、keypasswd 和 mksecpki 命令。