12.2. 使用 certmonger 请求自签名证书
要请求带有
certmonger
的证书,请使用 getcert 请求 工具。
证书和密钥以纯文本文件存储在本地,其扩展为
.pem
或 NSS 数据库中,由证书 nickname 标识。在请求证书时,请求应标识存储证书的位置和证书的 nickname。例如:
[root@server ~]# selfsign-getcert request -d /etc/pki/nssdb -n Server-Cert
/etc/pki/nssdb
文件是全局 NSS 数据库,Server-Cert
是这个证书的 nickname。证书别名在此数据库中必须是唯一的。
您可以向 命令提供用于生成证书的选项因您请求的证书类型、最终证书所需的配置以及其他设置而异:
- 如果密钥对已存在,R 会在过期日期关闭
时自动
续订证书。默认使用这个选项。 -f
将证书存储在给定文件中。-K
将密钥存储在给定文件中,或者如果密钥文件已存在,则使用 文件中的密钥。-K
提供将使用证书的 Kerberos 主体名称;当从 IdM 服务器请求证书时,需要-K
,并在请求自签名证书或本地签名证书时可选-n
给出主题名称。-
d 请求将证书中包含的 DNS 域名作为subjectAltName
值。-u
设置扩展密钥使用标志。-
a 请求证书中包含的 IP 地址作为subjectAltName
值。-I
为任务设置名称。certmonger
使用这个名称来引用存储位置和请求选项的组合,它也显示在 getcert list 命令的输出中。如果没有指定这个选项,certmonger
会为任务分配自动生成的名称。
真正的 CA(如 IdM 中的 CA)可以忽略您使用
-K
、-N、-
D、-
U
和 -A
选项在签名请求中指定的任何内容。例如,IdM 需要 -K
和 -N
同意本地主机名。另一方面,使用 selfsign-getcert 和 local-getcert 命令生成的证书会同意您指定的选项,因为这些命令不会强制执行任何策略。
例 12.1. 使用 certmonger 作为服务
[root@server ~]# selfsign-getcert request -f /etc/httpd/conf/ssl.crt/server.crt -k /etc/httpd/conf/ssl.key/server.key -N CN=`hostname --fqdn` -D `hostname` -U id-kp-serverAuth