2.5. 命令行界面


本节讨论命令行工具。

2.5.1. "pki" CLI

pki 命令行界面(CLI)提供对使用 REST 接口的各种服务的访问(请参阅 规划、安装和部署指南(Common standard Edition) 中的 2.3.4 REST 接口)。您可以按如下方式调用 CLI:

$ pki [CLI options] <command> [command parameters]

请注意,必须在命令之前放置 CLI 选项,并在命令后面使用命令参数。

2.5.1.1. 初始化 pki CLI

  • 要首次使用命令行界面,请指定新密码并使用以下命令:

    $ pki -c <password> client-init

    这将在 ~/.dogtag/nssdb 目录中创建一个新的客户端 NSS 数据库。必须在使用客户端 NSS 数据库的所有 CLI 操作中指定密码。

    或者,如果密码存储在文件中,您可以使用 the -C 选项指定文件。例如:

    $ pki -C password_file client-init
  • 要将 CA 证书导入到客户端 NSS 数据库中,请参阅 规划、安装和部署指南(Common criteria Edition) 中的 10.5 将 证书导入到 NSS 数据库中。
  • 有些命令可能需要客户端证书身份验证。要将现有客户端证书及其密钥导入到客户端 NSS 数据库中,请指定 PKCSautomationhub 文件和密码,并执行以下命令:

    1. 首先,从 .p12 文件提取 admin 客户端证书:

      $ openssl pkcs12 -in file -clcerts -nodes -nokeys -out file.crt
    2. 验证并导入 admin 客户端证书,如 规划、安装和部署指南(Common criteria Edition)中的 10 章管理证书/ 密钥加密策略 中所述:

      $ PKICertImport -d ~/.dogtag/nssdb -n "nickname" -t ",," -a -i file.crt -u C
重要

在导入 CA admin 客户端证书前,请确保已导入所有中间证书和 root CA 证书。

  • 要将现有客户端证书及其密钥导入到客户端 NSS 数据库中,请指定 PKCSautomationhub 文件和密码,并执行以下命令:

    $ 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
  • 要查看命令用法信息,请使用 the -help 选项:

    $ pki --help
    $ pki ca-cert-find --help
  • 要查看手册页,请指定 help 命令:

    $ pki help
    $ pki help ca-cert-find
  • 要执行不需要身份验证的命令,请指定命令及其参数(如果需要),例如:

    $ pki ca-cert-find
  • 要执行需要客户端证书身份验证的命令,请指定证书 nickname、客户端 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) 手册页。

2.5.3. AuditVerify

audit Verify 工具通过验证日志条目中的签名来验证审计日志 的完整性。

例如:

$ 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)。

详情请查看 audit Verify (1) man page 或 第 12.2.1 节 “显示和验证签名的审计日志”

2.5.4. BtoA

BtoA 实用程序对 Base64 中的二进制数据进行编码。例如:

$ BtoA input.bin output.ascii

详情请查看 BtoA (1) 手册页。

2.5.5. CMCRequest

CMCRequest 工具创建证书颁发或吊销请求。例如:

$ CMCRequest example.cfg
注意

CMCRequest 工具的所有选项都被指定为传递给 实用程序的配置文件的一部分。有关配置文件选项和更多信息,请参阅 CMCRequest (1) 手册页。另请参阅 第 5.3 节 “使用 CMC 请求和接收证书”第 6.2.1.1 节 “使用 CMCRequest吊销证书”

2.5.6. CMCResponse

CMCResponse 工具用于解析从 CMC 颁发或撤销请求返回的 CMC 响应。例如:

$ *CMCResponse -d /home/agentSmith/certdb_dir -i /home/agentSmith/certdb_dir/cmc.dirsrv_pkcs10.resp -o /home/agentSmith/certdb_dir/Server-Cert.crt*

详情请查看 CMCResponse (1) 手册页。

重要

使用 "-v" 选项运行 CMCResponse 将链中每个证书的 PEM 返回为 Cert:0,Cert:1 等。在所有 PEM 下,输出也会以用户打印格式显示链中的每个证书。由于证书没有以固定顺序显示,因此为了确定其在链中的位置,您必须检查每个 "Certificate" 下的"Subject: "。对应的 PEM 显示在上面的同一位置。

2.5.7. CMCRevoke

传统.不要使用。

2.5.8. CMCSharedToken

CMCSharedToken 工具为 shared-secred CMC 请求加密用户密码短语。例如:

$ CMCSharedToken -d . -p myNSSPassword -s "shared_passphrase" -o cmcSharedTok2.b64 -n "subsystemCert cert-pki-tomcat"

共享密码短语(-s)加密并存储在 cmcSharedtok2.b64 文件(-o)中,使用当前目录中的 NSS 数据库中的名为 subsystemCert cert-pki-tomcat (-n) 的证书来加密并存储在 cmcSharedtok2.b64 文件中。使用默认安全令牌 内部 (未指定 as -h ),并且 myNSSPassword 的令牌密码用于访问令牌。

详情请查看 CMCSharedtoken (1) 手册页以及 第 8.4.1 节 “创建共享 Secret 令牌”

2.5.9. CRMFPopClient

CRMFPopClient 工具是使用 NSS 数据库的证书请求消息格式(CRMF)客户端并提供 Possession 的证明。

例如:

$ 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

这个示例在当前目录中创建一个新的带有 cn=subject_name 主题 DN (-n)、NSS 数据库的 CSR,用于传输 kra.transport (-b)、AES/CBC/PKCS5Padding key wrap algorithm verbose 输出(-v)的证书,生成的 CSR 会被写入 /user_or_entity_database_directory/example.csr 文件(-o)

详情请查看 CRMFPopClient --help 命令的输出以及 第 5.2.3 节 “使用 CRMFPopClient 创建 CSR”

2.5.10. HttpClient

HttpClient 实用程序是用于提交 CMC 请求的 NSS 感知 HTTP 客户端。

例如:

$ HttpClient request.cfg
注意

HttpClient 实用程序的所有参数都存储在 request.cfg 文件中。如需更多信息,请参阅 HttpClient --help 命令的输出。

2.5.11. OCSPClient

OCSPClient 是一个在线证书状态协议(OCSP)客户端,用于检查证书撤销状态。

例如:

$ 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.12. PKCS10Client

PKCS10Client 工具在 HSM 上以 PKCS10 格式为 RSA 和 EC 密钥创建一个 CSR。

例如:

$ 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) 手册页。

2.5.13. PrettyPrintCert

PrettyPrintCert 工具以人类可读的格式显示证书的内容。

例如:

$ PrettyPrintCert ascii_data.cert

此命令解析 ascii_data.cert 文件的输出,并以人类可读的格式显示其内容。输出包括签名算法、exponent、modulus 和证书扩展等信息。

详情请查看 PrettyPrintCert (1) 手册页。

2.5.14. PrettyPrintCrl

PrettyPrintCrl 工具以人类可读的格式显示 CRL 文件的内容。

例如:

$ PrettyPrintCrl ascii_data.crl

此命令解析 ascii_data.crl 的输出,并以人类可读的格式显示其内容。输出包括信息,如撤销签名算法、撤销的签发者以及吊销证书及其原因的列表。

详情请查看 PrettyPrintCrl (1) 手册页。

2.5.15. TokenInfo

TokenInfo 工具列出了 NSS 数据库中的所有令牌。

例如:

$ TokenInfo ./nssdb/

此命令列出在指定数据库目录中注册的所有令牌(HSM、软令牌等)。

如需了解更多详细信息、更多选项和其他示例,请参阅 TokenInfo 命令的输出。

2.5.16. tkstool

tkstool 工具与令牌密钥服务(TKS)子系统交互。

例如:

$ tkstool -M -n new_master -d /var/lib/pki/pki-tomcat/alias -h token_name

此命令在 HSM token_name 上的 /var/lib/pki/pki-tomcat/alias NSS 数据库中创建一个名为 new_master (-n)的新主密钥(-M)。

详情请查看 tkstool -H 命令的输出。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部