2.5. 命令行界面
本节讨论命令行工具。
2.5.1. "pki" CLI
pki 命令行界面(CLI)使用 REST 界面提供对服务器上的各种服务的访问(请参阅 Red Hat Certificate System Planning, Installation, installation, installation, and Deployment Guide 中的 REST Interface 部分)。CLI 可以按如下方式调用:
$
pki [CLI options] <command> [command parameters]
请注意,必须在命令前放置 CLI 选项,并在命令后面使用命令参数。
2.5.1.1. pki CLI 初始化
要第一次使用命令行界面,请指定新密码并使用以下命令:
$
pki -c <password> client-init
这将在
~/.dogtag/nssdb
目录中创建新客户端 NSS 数据库。在使用客户端 NSS 数据库的所有 CLI 操作中必须指定密码。或者,如果密码存储在文件中,您可以使用 -C
选项指定该文件。例如:
$
pki -C password_file client-init
要将 CA 证书导入到客户端 NSS 数据库中,请参阅 Red Hat Certificate System Planning, Installation, and Deployment Guide 中的将 证书导入到 NSS 数据库 部分。
有些命令可能需要客户端证书身份验证。要将现有客户端证书及其密钥导入到客户端 NSS 数据库中,请指定 PKCS the 文件和密码,并执行以下命令:
执行以下命令,从
.p12
文件中提取 admin 客户端证书:
$ openssl pkcs12 -in file -clcerts -nodes -nokeys -out file.crt
按照 Red Hat Certificate System Planning, Installation, and Deployment Guide 中的 Managing Certificate/Key Crypto Token 部分所述,验证并导入 admin 客户端证书:
$ PKICertImport -d ~/.dogtag/nssdb -n "nickname" -t ",," -a -i file.crt -u C
重要
在导入 CA admin 客户端证书前,请确保所有中间证书和 root CA 证书都已导入。
要将现有客户端证书及其密钥导入到客户端 NSS 数据库中,请指定 PKCS the 文件和密码,并执行以下命令:
$
pki -c <password> pkcs12-import --pkcs12-file <file> --pkcs12-password <password>
使用以下命令验证客户端证书:
certutil -V -u C -n "nickname" -d ~/.dogtag/nssdb
2.5.1.2. 使用 "pki" CLI
命令行界面支持以分级结构组织的多个命令。要列出顶级命令,请执行 pki 命令,无需任何其他命令或参数:
$
pki
有些命令有子命令。要列出它们,请使用命令名称执行 pki,且不执行其他选项。例如:
$
pki ca
$
pki ca-cert
要查看命令用法信息,请使用
--help
选项:
$
pki --help
$
pki ca-cert-find --help
要查看手册页,请指定命令行 help 命令:
$
pki help
$
pki help ca-cert-find
要执行不需要身份验证的命令,请指定命令及其参数(如果需要),例如:
$
pki ca-cert-find
要执行需要客户端证书身份验证的命令,请指定证书别名、客户端 NSS 数据库密码以及服务器 URL (可选):
$
pki -U <server URL> -n <nickname> -c <password> <command> [command parameters]
例如:
$
pki -n jsmith -c password ca-user-find ...
默认情况下,CLI 在
http://local_host_name:8080 与服务器通信
。要在不同位置与服务器通信,请使用 -U
选项指定 URL,例如:
$
pki -U https://server.example.com:8443 -n jsmith -c password ca-user-find
2.5.2. AtoB
AtoB 实用程序将 Base64 编码的证书解码成其二进制等效证书。例如:
$
AtoB input.ascii output.bin
详情请查看 AtoB(1) man page。
2.5.3. AuditVerify
auditVerify 工具通过在日志条目上验证签名来验证审计日志的完整性。
Example:
$ AuditVerify -d ~jsmith/auditVerifyDir -n Log Signing Certificate -a ~jsmith/auditVerifyDir/logListFile -P "" -v
示例使用
~jsmith/auditVerifyDir
NSS 数据库(-d
)中的 Log Signing Certificate
(-n
)验证审计日志。要验证的日志列表(-a
)位于 ~jsmith/auditVerifyDir/logListFile
文件中,用逗号分开和排序。前面带有证书和密钥数据库文件名的前缀(-P
)为空。输出为详细(-v
)。
详情请查看 AuditVerify(1) man page 或 第 16.3.2 节 “使用签名的审计日志”。
2.5.4. BtoA
BtoA 实用程序使用 Base64 编码二进制数据。例如:
$
BtoA input.bin output.ascii
详情请查看 BtoA(1) man page。
2.5.5. CMCRequest
CMCRequest 工具创建一个证书颁发或撤销请求。例如:
$
CMCRequest example.cfg
注意
CMCRequest 工具的所有选项都作为传递给实用程序的配置文件的一部分指定。有关配置文件选项以及详情,请查看 CMCRequest(1) man page。另请参阅 4.3。使用 CMC 和 第 7.2.1 节 “使用
CMCRequest
吊销证书” 请求和接收证书。
2.5.6. CMCRevoke
Legacy。不要使用。
2.5.8. CRMFPopClient
CRMFPopClient
工具是使用 NSS 数据库的证书请求消息格式(CRMF)客户端,并提供 Possession 的参与。
Example:
$ CRMFPopClient -d . -p password -n "cn=subject_name" -q POP_SUCCESS -b kra.transport -w "AES/CBC/PKCS5Padding" -t false -v -o /user_or_entity_database_directory/example.csr
这个示例在当前目录(
-d
)中创建一个带有 cn=subject_name 主题 DN (-n)
的新 CSR,用于指定用于传输 kra.transport
(-b
)的证书,即 AES/CBC/PKCS5Padding key wrap 算法详细输出(-v
) 生成的 CSR 被写入 /user_or_entity_database_directory/example.csr
文件(-o)
。
有关详情、更多选项和其他示例,请参阅 CRMFPopClient --help 命令的输出以及 第 7.2.1 节 “使用
CMCRequest
吊销证书”。
2.5.9. HttpClient
HttpClient
实用程序是用于提交 CMC 请求的 NSS 感知 HTTP 客户端。
Example:
$ HttpClient request.cfg
注意
HttpClient 实用程序的所有参数都存储在
request.cfg
文件中。如需更多信息,请参阅 HttpClient --help 命令的输出。
2.5.10. OCSPClient
用于检查证书撤销状态的在线证书状态协议(OCSP)客户端。
Example:
$ OCSPClient -h server.example.com -p 8080 -d /etc/pki/pki-tomcat/alias -c "caSigningCert cert-pki-ca" --serial 2
这个示例在端口 8080 (
-p
)上查询 server.example.com
OCSP 服务器(-h
),以检查由 caSigningcet cert-pki-ca (-c
)签名的证书是否有效。
使用 /etc/pki/pki-tomcat/alias
目录中的 NSS 数据库。
详情请查看 OCSPClient --help 命令的输出、更多选项和其他示例。
2.5.11. PKCS10Client
PKCS10Client
工具为 RSA 和 EC 密钥创建一个 PKCS10 格式的 CSR,可选在 HSM 上。
Example:
$ PKCS10Client -d /etc/dirsrv/slapd-instance_name/ -p password -a rsa -l 2048 -o ~/ds.csr -n "CN=$HOSTNAME"
这个示例在
/etc/dirsrv/slapd-instance_name/
目录中创建一个新的 RSA (-a
)密钥,其 2048 位(-
l
)。
输出 CSR 存储在 ~/ds.cfg
文件(-o
)中,证书 DN 为 CN=$HOSTNAME (-n
)。
详情请查看 PKCS10Client(1) man page。
2.5.12. PrettyPrintCert
PrettyPrintCert 工具以人类可读格式显示证书的内容。
Example:
$ PrettyPrintCert ascii_data.cert
此命令解析
ascii_data.cert
文件的输出,并以人类可读格式显示其内容。输出包括签名算法、exponent、modulus 和证书扩展等信息。
详情请查看 PrettyPrintCert(1) man page。
2.5.13. PrettyPrintCrl
PrettyPrintCrl 实用程序以人类可读格式显示 CRL 文件的内容。
Example:
$ PrettyPrintCrl ascii_data.crl
此命令解析
ascii_data.crl
的输出,并以人类可读格式显示其内容。输出包括信息,如撤销签名算法、撤销的签发者以及撤销的证书列表及其原因。
详情请查看 PrettyPrintCrl(1) man page。
2.5.14. TokenInfo
TokenInfo 实用程序列出 NSS 数据库中的所有令牌。
Example:
$ TokenInfo ./nssdb/
此命令列出在指定数据库目录中注册的所有令牌(HSM、软令牌等等)。
有关详情、更多选项和其他示例,请参阅 TokenInfo 命令的输出
2.5.15. tkstool
tkstool
工具与令牌密钥服务(TKS)子系统交互。
Example:
$ tkstool -M -n new_master -d /var/lib/pki/pki-tomcat/alias -h token_name
此命令在 HSM
令牌_name
上的 /var/lib/pki/pki-tomcat/alias
NSS 数据库中创建一个名为 new_master (-n
)的新主密钥(-M
)
详情请查看 tkstool -H 命令的输出、更多选项和其他示例。