7.4. 安装 PKI 子系统


Red Hat Certificate System 提供不同的子系统,可以单独安装。例如,您可以在单一服务器上安装多个子系统实例,或者您可以在不同的主机上独立运行它们。这可让您根据环境调整安装,以提供更高的可用性、可扩展性和故障切换支持。

有关安装指南,请参考下面的 RHCS 子系统指南。

如果您不熟悉 pkispawn,请参阅 第 7.2 节 “使用 pkispawn 工具安装 RHCS” 来更好地了解每个子系统安装的选项。

重要

完成后,请参阅 第 7.5 节 “安装后的任务” 并遵循与您要安装的子系统相关的部分。

7.4.1. 安装 CA 子系统

7.4.1.1. 安装 CA

按照以下步骤安装带有自签名 CA 签名证书的 CA 子系统实例。它还被称为"root CA"。

在安装前,请确保配置了 安装前提条件

7.4.1.1.1. 安装 CA 子系统

准备部署配置,如 ca.cfg,以部署 CA 子系统。默认情况下,子系统部署到名为 pki-tomcat 的 Tomcat 实例中。

部署配置示例位于 /usr/share/pki/server/examples/installation/ca.cfg

要启动安装,请执行以下命令:

Copy to Clipboard Toggle word wrap
$ pkispawn -f ca.cfg -s CA
7.4.1.1.2. CA 系统证书

安装后,CA 系统证书和密钥存储在服务器 NSS 数据库中(例如 /var/lib/pki/pki-tomcat/conf/alias):

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CTu,Cu,Cu
ca_ocsp_signing                                              u,u,u
subsystem                                                    u,u,u
ca_audit_signing                                             u,u,Pu
sslserver                                                    u,u,u

如果需要,可以使用以下命令将证书导出到 PEM 文件中:

Copy to Clipboard Toggle word wrap
$ pki-server cert-export <cert ID> --cert-file <filename>

CA 的有效证书 ID 是:

  • ca_signing
  • ca_ocsp_signing
  • ca_audit_signing
  • subsystem
  • sslserver

请注意,pki-server cert-export 命令采用证书 ID 而不是 nickname。为了简单起见,本例中的 nicknames 配置为与证书 ID 相同。

7.4.1.1.3. 管理证书

安装后,admin 证书和密钥存储在 ~/.dogtag/pki-tomcat/ca_admin_cert.p12 中。

PKCS fulfillment 密码在 pki_client_pkcs12_password 参数中指定。

要使用管理证书,请执行以下操作:

  1. 从服务器 NSS 数据库导出 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki-server cert-export ca_signing --cert-file ca_signing.crt
  2. 将 CA 签名证书导入到客户端 NSS 数据库中:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  3. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki pkcs12-import \
        --pkcs12 ~/.dogtag/pki-tomcat/ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  4. 运行以下命令,验证 admin 证书是否可用于访问 CA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.1.2. 安装 CA 克隆

按照以下步骤将 CA 子系统安装为现有 CA 子系统的克隆。

在安装前,请确保配置了 安装前提条件

其他有用的提示:

  • 确保 master 上的防火墙允许从克隆从外部访问 LDAP。
  • 确保克隆上的防火墙允许从主控机从外部访问 LDAP。
  • 在 LDAP 中没有 dc=pki,dc=example,dc=com 条目会给出与无法连接到 LDAP 服务器相同的错误。
7.4.1.2.1. 导出现有的 CA 系统证书

在现有系统中,使用以下命令导出 CA 系统证书:

Copy to Clipboard Toggle word wrap
$ pki-server ca-clone-prepare \
    --pkcs12-file ca-certs.p12 \
    --pkcs12-password Secret.123

命令将以下证书(包括证书链)及其密钥导出到 PKCSautomationhub 文件中:

  • CA 签名证书
  • OCSP 签名证书
  • 审计签名证书
  • 子系统证书

请注意,现有的 SSL 服务器证书没有导出。

如有必要,第三方证书(如信任锚)可以使用以下命令添加到同一 PKCSeffort 文件中:

Copy to Clipboard Toggle word wrap
$ pki -d /var/lib/pki/pki-tomcat/conf/alias -f /var/lib/pki/pki-tomcat/conf/password.conf \
    pkcs12-cert-import <nickname> \
    --pkcs12-file ca-certs.p12 \
    --pkcs12-password Secret.123 \
    --append

另外,也可使用以下命令导出上述证书的 CSR:

Copy to Clipboard Toggle word wrap
$ pki-server cert-export ca_signing \
    --csr-file ca_signing.csr

$ pki-server cert-export ca_ocsp_signing \
    --csr-file ca_ocsp_signing.csr

$ pki-server cert-export ca_audit_signing \
    --csr-file ca_audit_signing.csr

$ pki-server cert-export subsystem \
    --csr-file subsystem.csr
7.4.1.2.2. SELinux 权限

ca-certs.p12 复制到克隆机器后,请确保添加了适当的 SELinux 规则:

Copy to Clipboard Toggle word wrap
$ semanage fcontext -a -t pki_tomcat_cert_t ca-certs.p12
$ restorecon -R -v ca-certs.p12

确保 ca-certs.p12 文件归 pkiuser所有

Copy to Clipboard Toggle word wrap
$ chown pkiuser:pkiuser ca-certs.p12
7.4.1.2.3. 安装 CA 子系统

准备部署配置,如 ca-clone.cfg,以部署 CA 子系统克隆。默认情况下,子系统部署到名为 pki-tomcat 的 Tomcat 实例中。

部署配置示例位于 /usr/share/pki/server/examples/installation/ca-clone.cfg

它假设:

  • 主 CA 子系统在 https://primary.example.com:8443中运行
  • CA 签名证书已导出到 ca_signing.crt
  • 管理证书和密钥已导出到 ca_admin_cert.p12
  • PKCS fulfillment 密码在 pki_client_pkcs12_password 参数中指定。

详情请参阅 CA 安装

如果 CSR 可用,可以使用以下参数来指定它们:

Copy to Clipboard Toggle word wrap
pki_ca_signing_csr_path=ca_signing.csr
pki_ocsp_signing_csr_path=ca_ocsp_signing.csr
pki_audit_signing_csr_path=ca_audit_signing.csr
pki_subsystem_csr_path=subsystem.csr

要开始安装,请执行以下命令:

Copy to Clipboard Toggle word wrap
$ pkispawn -f ca-clone.cfg -s CA
7.4.1.2.4. CA 系统证书

安装现有 CA 系统证书(包括证书链)后,其密钥存储在服务器 NSS 数据库中(例如 /var/lib/pki/pki-tomcat/conf/alias),并为新实例创建新的 SSL 服务器证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CTu,Cu,Cu
ca_ocsp_signing                                              u,u,u
subsystem                                                    u,u,u
ca_audit_signing                                             u,u,Pu
sslserver                                                    u,u,u

如果需要,可以使用以下命令将证书导出到 PEM 文件中:

Copy to Clipboard Toggle word wrap
$ pki-server cert-export <cert ID> --cert-file <filename>

CA 的有效证书 ID 是:

  • ca_signing
  • ca_ocsp_signing
  • ca_audit_signing
  • subsystem
  • sslserver

请注意,pki-server cert-export 命令采用证书 ID 而不是 nickname。为了简单起见,本例中的 nicknames 配置为与证书 ID 相同。

7.4.1.2.5. 管理证书

要使用管理证书,请执行以下操作:

  1. 将 CA 签名证书导入到客户端 NSS 数据库中:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 要验证 admin 证书是否可以用于访问 CA 子系统克隆,请执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pki -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.1.3. 使用 HSM 安装 CA 克隆

按照以下步骤将 CA 子系统安装为现有 CA 子系统的克隆,其中系统证书及其密钥存储在 HSM 中。

在安装前,请确保配置了 安装前提条件

7.4.1.3.1. 导出现有系统证书

由于系统证书和密钥已在 HSM 上,因此不需要将它们导出到 PKCSrhgs 文件以创建克隆。

但是,系统证书的 CSR 存储在 CS.cfg 中,而不是 HSM。

使用以下命令也可以导出它们:

Copy to Clipboard Toggle word wrap
$ pki-server cert-export ca_signing \
    --csr-file ca_signing.csr

$ pki-server cert-export ca_ocsp_signing \
    --csr-file ca_ocsp_signing.csr

$ pki-server cert-export ca_audit_signing \
    --csr-file ca_audit_signing.csr

$ pki-server cert-export subsystem \
    --csr-file subsystem.csr
7.4.1.3.2. CA 子系统安装

注:假设 CA 签名证书已导出到 ca_signing.crt

  1. 准备包含部署配置的文件,如 ca.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    
    pki_server_database_password=Secret.123
    
    pki_hsm_enable=True
    pki_hsm_libfile=/usr/lib64/pkcs11/libsofthsm2.so
    pki_hsm_modulename=softhsm
    pki_token_name=HSM
    pki_token_password=Secret.HSM
    
    pki_cert_chain_path=ca_signing.crt
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [CA]
    pki_admin_email=caadmin@example.com
    pki_admin_name=caadmin
    pki_admin_nickname=caadmin
    pki_admin_password=Secret.123
    pki_admin_uid=caadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldap://localhost.localdomain:389
    pki_ds_base_dn=dc=ca,dc=pki,dc=example,dc=com
    pki_ds_database=ca
    pki_ds_password=Secret.123
    
    pki_security_domain_hostname=pki.example.com
    pki_security_domain_https_port=8443
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_ca_signing_nickname=ca_signing
    pki_ocsp_signing_nickname=ca_ocsp_signing
    pki_audit_signing_nickname=ca_audit_signing
    pki_sslserver_nickname=sslserver/replica.example.com
    pki_subsystem_nickname=subsystem
    
    pki_ca_signing_token=HSM
    pki_ocsp_signing_token=HSM
    pki_audit_signing_token=HSM
    pki_sslserver_token=HSM
    pki_subsystem_token=HSM
    
    pki_clone=True
    pki_clone_replicate_schema=True
    pki_clone_uri=https://pki.example.com:8443
  2. 如果 CSR 可用,可以使用以下参数来指定它们:

    Copy to Clipboard Toggle word wrap
    pki_ca_signing_csr_path=ca_signing.csr
    pki_ocsp_signing_csr_path=ca_ocsp_signing.csr
    pki_audit_signing_csr_path=ca_audit_signing.csr
    pki_subsystem_csr_path=subsystem.csr
  3. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ca.cfg -s CA

它会在 Tomcat 实例中安装 CA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/ca/alias
7.4.1.3.3. 验证系统证书
  1. 验证内部令牌是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    ca_signing                                                   CT,C,C
    sslserver/replica.example.com                                ,,
    ca_audit_signing                                             ,,P
  2. 验证 HSM 是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias -h HSM -f HSM.pwd
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    HSM:ca_signing                                               CTu,Cu,Cu
    HSM:ca_ocsp_signing                                          u,u,u
    HSM:subsystem                                                u,u,u
    HSM:ca_audit_signing                                         u,u,Pu
    HSM:sslserver/replica.example.com                            u,u,u
7.4.1.3.4. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 导入 master 的 admin 密钥和证书:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 CA 克隆:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.1.4. 使用 LDAPS 连接安装 CA 克隆

按照以下步骤,将 CA 子系统安装为具有安全数据库连接的现有 CA 子系统的克隆。

在安装前,请确保配置了 安装前提条件

7.4.1.4.1. DS 配置

在克隆系统上完成上述先决条件后,请按照使用 DS 启用 SSL 连接 的步骤,以便 CA 克隆的 DS 使用 CA 发布的实际服务器证书运行并启用了 SSL。

一些有用的提示:

  • 确保 master 上的防火墙允许从克隆从外部访问 LDAP。
  • 确保克隆上的防火墙允许从主控机从外部访问 LDAP。
  • 在 LDAP 中没有 dc=pki,dc=example,dc=com 条目会给出与无法连接到 LDAP 服务器相同的错误。
7.4.1.4.2. 导出现有的 CA 系统证书

在现有系统中,使用以下命令导出 CA 系统证书并将其复制到克隆系统中:

Copy to Clipboard Toggle word wrap
$ pki-server ca-clone-prepare --pkcs12-file ca-certs.p12 --pkcs12-password Secret.123
$ pki-server cert-export ca_signing --cert-file ca_signing.crt

以下证书(包括证书链)及其密钥被导出到一个 PKCSautomationhub 文件中:

  • CA 签名证书
  • OCSP 签名证书
  • 审计签名证书
  • 子系统证书

请注意,现有的 SSL 服务器证书没有导出。

如有必要,第三方证书(如信任锚)可以使用以下命令添加到同一 PKCSeffort 文件中:

Copy to Clipboard Toggle word wrap
$ pki -d /var/lib/pki/pki-tomcat/conf/alias -f /var/lib/pki/pki-tomcat/conf/password.conf \
    pkcs12-cert-import <nickname> \
    --pkcs12-file ca-certs.p12 \
    --pkcs12-password Secret.123 \
    --append
7.4.1.4.3. SELinux 权限

ca-certs.p12 复制到克隆机器后,请确保添加了适当的 SELinux 规则:

Copy to Clipboard Toggle word wrap
$ semanage fcontext -a -t pki_tomcat_cert_t ca-certs.p12
$ restorecon -R -v ca-certs.p12

确保 ca-certs.p12 文件归 pkiuser所有

Copy to Clipboard Toggle word wrap
$ chown pkiuser:pkiuser ca-certs.p12
7.4.1.4.4. 安装 CA 子系统

准备部署配置,如 ca-secure-ds-secondary.cfg,以部署 CA 子系统克隆。默认情况下,子系统部署到名为 pki-tomcat 的 Tomcat 实例中。

注意

以下引用的 pkispawn 配置文件示例预期 DS 服务器证书的签名证书位于名为 ds_signing.crt 的文件中。由于现有 CA 正在用作签名证书,请将 CA 的签名证书复制到 ds_signing.crt 中:

Copy to Clipboard Toggle word wrap
$ cp ca_signing.crt ds_signing.crt

部署配置示例位于 /usr/share/pki/server/examples/installation/ca-secure-ds-secondary.cfg

它假设:

  • 现有的 CA 和 DS 实例在 primary.example.com 上运行。
  • 新的 CA 和 DS 克隆安装在 secondary.example.com 上。
  • CA 签名证书已导出到 ca_signing.crt
  • admin 证书和密钥已导出到 ca_admin_cert.p12 中。
  • PKCS fulfillment 密码在 pki_client_pkcs12_password 参数中指定。

要开始安装,请执行以下命令:

Copy to Clipboard Toggle word wrap
$ pkispawn -f ca-secure-ds-secondary.cfg -s CA
7.4.1.4.5. CA 系统证书

安装现有 CA 系统证书(包括证书链)后,其密钥存储在服务器 NSS 数据库中(例如 /var/lib/pki/pki-tomcat/conf/alias),并为新实例创建新的 SSL 服务器证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

subsystem                                                    u,u,u
ca_signing                                                   CTu,Cu,Cu
ca_ocsp_signing                                              u,u,u
ca_audit_signing                                             u,u,Pu
ds_signing                                                   CT,C,C
sslserver                                                    u,u,u

如果需要,可以使用以下命令将克隆 CA 系统证书导出到 PEM 文件中:

Copy to Clipboard Toggle word wrap
$ pki-server cert-export <cert ID> --cert-file <filename>

CA 的有效证书 ID 是:

  • ca_signing
  • ca_ocsp_signing
  • ca_audit_signing
  • subsystem
  • sslserver

请注意,pki-server cert-export 命令采用证书 ID 而不是 nickname。为了简单起见,本例中的 nicknames 配置为与证书 ID 相同。

7.4.1.4.6. 管理证书

要使用管理证书,请执行以下操作:

  1. 将 CA 签名证书导入到客户端 NSS 数据库中:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可以用于访问 CA 子系统克隆:

    Copy to Clipboard Toggle word wrap
    $ pki -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.1.5. 使用 bootstrap DS 证书使用 LDAPS 安装 CA 克隆

按照以下步骤,将 CA 子系统安装为使用 bootstrap SSL 服务器证书运行的现有 CA 子系统的克隆。

在安装前,请确保已配置了 安装前提条件

7.4.1.5.1. DS 配置
  1. 在克隆系统中完成以上先决条件后,进入现有系统,并将 DS 签名证书导出到 ds_signing.p12 中,使用以下命令将证书复制到克隆系统中:

    Copy to Clipboard Toggle word wrap
    $ pki -d /etc/dirsrv/slapd-localhost \
    -C /etc/dirsrv/slapd-localhost/pwdfile.txt \
    pkcs12-export --pkcs12-file ds_signing.p12 \
    --pkcs12-password Secret.123 Self-Signed-CA
  2. 使用以下命令将 ds_signing.p12 导入到克隆 DS 实例中:

    Copy to Clipboard Toggle word wrap
    $ pki -d /etc/dirsrv/slapd-localhost \
    -C /etc/dirsrv/slapd-localhost/pwdfile.txt \
    pkcs12-import --pkcs12-file ds_signing.p12 \
    --pkcs12-password Secret.123
  3. 在 DS 克隆上,创建一个 boostrap DS 服务器证书,如 创建 DS 服务器证书 中所述。

    请注意,证书主题 DN 应与克隆的主机名匹配,即,-- subject "CN=secondary.example.com "。

  4. 启用 SSL 连接,如 启用 SSL 连接 中所述。
  5. 成功 DS 后,将 DS 签署证书导出到 'ds_signing.crt' 中,如下所示:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /etc/dirsrv/slapd-localhost -n Self-Signed-CA -a > ds_signing.crt

一些有用的提示:

  • 确保 DS 防火墙允许从 PKI 服务器和其他 DS 实例访问。
  • 在 LDAP 中没有 dc=pki,dc=example,dc=com 条目会给出与无法连接到 LDAP 服务器相同的错误。
7.4.1.5.2. 导出现有的 CA 系统证书
  1. 在现有系统中,使用以下命令导出 CA 系统证书并复制到克隆系统:

    Copy to Clipboard Toggle word wrap
    $ pki-server ca-clone-prepare --pkcs12-file ca-certs.p12 --pkcs12-password Secret.123
    $ pki-server cert-export ca_signing --cert-file ca_signing.crt

    以下证书(包括证书链)及其密钥被导出到一个 PKCSautomationhub 文件中:

    • CA 签名证书
    • OCSP 签名证书
    • 审计签名证书
    • 子系统证书

    请注意,现有的 SSL 服务器证书没有导出。

  2. 如有必要,第三方证书(如信任锚)可以使用以下命令添加到同一 PKCSeffort 文件中:

    Copy to Clipboard Toggle word wrap
    $ pki -d /var/lib/pki/pki-tomcat/conf/alias -f /var/lib/pki/pki-tomcat/conf/password.conf \
        pkcs12-cert-import <nickname> \
        --pkcs12-file ca-certs.p12 \
        --pkcs12-password Secret.123 \
        --append
7.4.1.5.3. SELinux 权限
  1. ca-certs.p12 复制到克隆机器后,请确保添加了适当的 SELinux 规则:

    Copy to Clipboard Toggle word wrap
    $ semanage fcontext -a -t pki_tomcat_cert_t ca-certs.p12
    $ restorecon -R -v ca-certs.p12
  2. 确保 ca-certs.p12 文件归 pkiuser 所有:

    Copy to Clipboard Toggle word wrap
    $ chown pkiuser:pkiuser ca-certs.p12
7.4.1.5.4. 安装 CA 子系统

准备部署配置,如 ca-secure-ds-secondary.cfg,以部署 CA 子系统克隆。默认情况下,子系统部署到名为 pki-tomcat 的 Tomcat 实例中。

部署配置示例位于 /usr/share/pki/server/examples/installation/ca-secure-ds-secondary.cfg

它假设:

  • 现有的 CA 和 DS 实例在 primary.example.com 上运行。
  • 新的 CA 和 DS 克隆安装在 secondary.example.com 上。
  • CA 签名证书已导出到 ca_signing.crt
  • admin 证书和密钥已导出到 ca_admin_cert.p12 中。
  • PKCS fulfillment 密码在 pki_client_pkcs12_password 参数中指定。

要启动安装,请执行以下命令:

Copy to Clipboard Toggle word wrap
$ pkispawn -f ca-secure-ds-secondary.cfg -s CA
7.4.1.5.5. CA 系统证书

安装后,现有 CA 系统证书(包括证书链)及其密钥存储在服务器 NSS 数据库中,即 /var/lib/pki/pki-tomcat/conf/alias,并为新实例创建新的 SSL 服务器证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

subsystem                                                    u,u,u
ca_signing                                                   CTu,Cu,Cu
ca_ocsp_signing                                              u,u,u
ca_audit_signing                                             u,u,Pu
ds_signing                                                   CT,C,C
sslserver                                                    u,u,u

如果需要,可以使用以下命令将克隆 CA 系统证书导出到 PEM 文件中:

Copy to Clipboard Toggle word wrap
$ pki-server cert-export <cert ID> --cert-file <filename>

CA 的有效证书 ID 是:

  • ca_signing
  • ca_ocsp_signing
  • ca_audit_signing
  • subsystem
  • sslserver

请注意,pki-server cert-export 命令采用证书 ID 而不是 nickname。为了简单起见,本例中的 nicknames 配置为与证书 ID 相同。

7.4.1.5.6. 管理证书

要使用管理证书,请执行以下操作:

  1. 将 CA 签名证书导入到客户端 NSS 数据库中:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 验证 admin 证书可用于访问 CA 子系统克隆,请执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pki -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.1.6. 使用自定义 CA 签名密钥安装 CA

按照以下步骤安装带有自定义 CA 签名密钥、CSR 和证书的 CA 子系统。

在安装前,请确保已配置了 安装前提条件

7.4.1.6.1. 启动 CA 子系统安装
  1. 准备一个文件,如 ca-step1.cfg,其中包含步骤 1 的部署配置:

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [CA]
    pki_admin_email=caadmin@example.com
    pki_admin_name=caadmin
    pki_admin_nickname=caadmin
    pki_admin_password=Secret.123
    pki_admin_uid=caadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldap://localhost.localdomain:389
    pki_ds_base_dn=dc=ca,dc=pki,dc=example,dc=com
    pki_ds_database=ca
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    
    pki_ca_signing_nickname=ca_signing
    pki_ocsp_signing_nickname=ca_ocsp_signing
    pki_audit_signing_nickname=ca_audit_signing
    pki_sslserver_nickname=sslserver
    pki_subsystem_nickname=subsystem
    
    pki_external=True
    pki_external_step_two=False
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ca-step1.cfg -s CA

它会在 Tomcat 实例中安装 CA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/ca/alias

由于没有指定 CSR 路径参数,因此默认情况下不生成 CA 签名密钥。

7.4.1.6.2. 生成 CA 签名密钥、CSR 和证书

在服务器 NSS 数据库中生成自定义 CA 签名密钥,然后生成 CSR 并将其存储在文件中,如 ca_signing.csr

使用 CSR 发布 CA 签名证书:

  • 对于 root CA 安装,生成自签名 CA 签名证书。
  • 对于从属 CA 安装,请将 CSR 提交给外部 CA,以发布 CA 签名证书。

将 CA 签名证书存储在文件中,如 ca_signing.crt。CA 签名证书可以指定为单个证书或 PEM 格式的 PKCS #7 证书链。

如果 CA 签名证书由外部 CA 发布,请将外部 CA 证书链存储在文件中,如 external.crt。证书链可以指定为单个证书或 PEM 格式的 PKCS #7 证书链。证书链应包含从 root CA 到发布 CA 签名证书的外部 CA 的所有 CA,但它不应包含 CA 签名证书本身。

7.4.1.6.3. 完成 CA 子系统安装

准备另一个文件,如 ca-step2.cfg,其中包含步骤 2 的部署配置。文件可以从第 1 步中复制,即 ca-step1.cfg,并有其他更改。

  1. 使用以下参数指定第 2 步:

    Copy to Clipboard Toggle word wrap
    pki_external_step_two=True
  2. 使用以下参数指定自定义 CA 签名 CSR:

    Copy to Clipboard Toggle word wrap
    pki_ca_signing_csr_path=ca_signing.csr
  3. 使用以下参数指定自定义 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    pki_ca_signing_cert_path=ca_signing.crt
  4. 如果 CA 签名证书由外部 CA 发布,请使用以下参数指定外部 CA 证书链:

    Copy to Clipboard Toggle word wrap
    pki_cert_chain_nickname=external
    pki_cert_chain_path=external.crt
  5. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ca-step2.cfg -s CA
7.4.1.6.4. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

external                                                     CT,C,C
ca_signing                                                   CTu,Cu,Cu
ca_ocsp_signing                                              u,u,u
subsystem                                                    u,u,u
ca_audit_signing                                             u,u,Pu
sslserver                                                    u,u,u
7.4.1.6.5. 验证管理证书
  1. 导入外部 CA 证书链:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 client-cert-import --ca-cert external.crt
  2. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  3. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ~/.dogtag/pki-tomcat/ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  4. 运行以下命令,验证 admin 证书是否可用于访问 CA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.1.7. 使用 ECC 安装 CA

按照以下步骤安装带有 ECC 自签名 CA 签名证书的 CA 子系统。

支持的 ECC curves:

  • nistp256
  • nistp384
  • nistp521

支持的 ECC 密钥算法:

  • SHA256withEC
  • SHA384withEC
  • SHA512withEC

在安装前,请确保配置了 安装前提条件

7.4.1.7.1. 安装 CA 子系统

准备部署配置,如 ca-ecc.cfg,以部署 CA 子系统。默认情况下,子系统部署到名为 pki-tomcat 的 Tomcat 实例中。

部署配置示例位于 /usr/share/pki/server/examples/installation/ca-ecc.cfg

要启动安装,请执行以下命令:

Copy to Clipboard Toggle word wrap
$ pkispawn -f ca-ecc.cfg -s CA
7.4.1.7.2. CA 系统证书

安装 CA 系统证书和密钥后,将存储在服务器 NSS 数据库中(例如 /var/lib/pki/pki-tomcat/conf/alias):

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CTu,Cu,Cu
ca_ocsp_signing                                              u,u,u
subsystem                                                    u,u,u
ca_audit_signing                                             u,u,Pu
sslserver                                                    u,u,u

如果需要,可以使用以下命令将证书导出到 PEM 文件中:

Copy to Clipboard Toggle word wrap
$ pki-server cert-export <cert ID> --cert-file <filename>

CA 的有效证书 ID 是:

  • ca_signing
  • ca_ocsp_signing
  • ca_audit_signing
  • subsystem
  • sslserver

请注意,pki-server cert-export 命令采用证书 ID 而不是 nickname。为了简单起见,本例中的 nicknames 配置为与证书 ID 相同。

7.4.1.7.3. 管理证书

安装后,admin 证书和密钥存储在 ~/.dogtag/pki-tomcat/ca_admin_cert.p12 中。PKCS fulfillment 密码在 pki_client_pkcs12_password 参数中指定。

要使用管理证书,请执行以下操作:

  1. 从服务器 NSS 数据库导出 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki-server cert-export ca_signing --cert-file ca_signing.crt
  2. 将 CA 签名证书导入到客户端 NSS 数据库中:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  3. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki pkcs12-import \
        --pkcs12 ~/.dogtag/pki-tomcat/ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  4. 要验证 admin 证书是否可以用于访问 CA 子系统,请执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pki -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.1.8. 在 HSM 中使用现有密钥安装 CA

按照以下步骤,从存储在 HSM 的现有 CA 中安装带有系统密钥、CSR 和证书的 CA 子系统。

为避免与现有 CA 子系统冲突,新的 CA 子系统使用新的 SSL 服务器和子系统证书,因此不会包含在安装过程中。

在安装前,请确保已配置了 安装前提条件

7.4.1.8.1. 启动 CA 子系统
  1. 准备包含步骤 1 中的部署配置的文件,如 ca-step1.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    pki_hsm_enable=True
    pki_hsm_libfile=/usr/lib64/pkcs11/libsofthsm2.so
    pki_hsm_modulename=softhsm
    pki_token_name=HSM
    pki_token_password=Secret.123
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [CA]
    pki_admin_email=caadmin@example.com
    pki_admin_name=caadmin
    pki_admin_nickname=caadmin
    pki_admin_password=Secret.123
    pki_admin_uid=caadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldap://localhost.localdomain:389
    pki_ds_base_dn=dc=ca,dc=pki,dc=example,dc=com
    pki_ds_database=ca
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    
    pki_ca_signing_nickname=ca_signing
    pki_ocsp_signing_nickname=ca_ocsp_signing
    pki_audit_signing_nickname=ca_audit_signing
    pki_sslserver_nickname=sslserver/pki.example.com
    pki_subsystem_nickname=subsystem/pki.example.com
    
    pki_external=True
    pki_external_step_two=False
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ca-step1.cfg -s CA

它会在 Tomcat 实例中安装 CA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/ca/alias

由于没有指定 CSR 路径参数,因此它不会生成 CA 系统和 admin 密钥。

7.4.1.8.2. 导出现有系统证书和 CSR
  1. 使用以下命令从现有 CA 导出系统证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias -h HSM -f HSM.pwd -n "HSM:ca_signing" -a > ca_signing.crt
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias -h HSM -f HSM.pwd -n "HSM:ca_ocsp_signing" -a > ca_ocsp_signing.crt
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias -h HSM -f HSM.pwd -n "HSM:ca_audit_signing" -a > ca_audit_signing.crt
  2. 使用以下命令从现有 CA 导出 CSR:

    Copy to Clipboard Toggle word wrap
    $ echo "-----BEGIN CERTIFICATE REQUEST-----" > ca_signing.csr
    $ sed -n "/^ca.signing.certreq=/ s/^=// p" < /var/lib/pki/pki-tomcat/conf/ca/CS.cfg >> ca_signing.csr $ echo "-----END CERTIFICATE REQUEST-----" >> ca_signing.csr $ echo "-----BEGIN CERTIFICATE REQUEST-----" > ca_ocsp_signing.csr $ sed -n "/^ca.ocsp_signing.certreq=/ s/[=]=// p" < /var/lib/pki/pki-tomcat/conf/ca/CS.cfg >> ca_ocsp_signing.csr
    $ echo "-----END CERTIFICATE REQUEST-----" >> ca_ocsp_signing.csr
    
    $ echo "-----BEGIN CERTIFICATE REQUEST-----" > ca_audit_signing.csr
    $ sed -n "/^ca.audit_signing.certreq=/ s/[=]*=// p" < /var/lib/pki/pki-tomcat/conf/ca/CS.cfg >> ca_audit_signing.csr
    $ echo "-----END CERTIFICATE REQUEST-----" >> ca_audit_signing.csr
7.4.1.8.3. 完成 CA 子系统安装

准备另一个文件,如 ca-step2.cfg,其中包含步骤 2 的部署配置。文件可以从第 1 步中复制,即 ca-step1.cfg,并有其他更改。

  1. 使用以下参数指定第 2 步:

    Copy to Clipboard Toggle word wrap
    pki_external_step_two=True
  2. 使用以下参数指定现有证书:

    Copy to Clipboard Toggle word wrap
    pki_ca_signing_cert_path=ca_signing.crt
    pki_ocsp_signing_cert_path=ca_ocsp_signing.crt
    pki_audit_signing_cert_path=ca_audit_signing.crt
  3. 使用以下参数指定现有的 CSR:

    Copy to Clipboard Toggle word wrap
    pki_ca_signing_csr_path=ca_signing.csr
    pki_ocsp_signing_csr_path=ca_ocsp_signing.csr
    pki_audit_signing_csr_path=ca_audit_signing.csr
  4. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ca-step2.cfg -s CA
7.4.1.8.4. 验证系统证书
  1. 验证内部令牌是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    ca_signing                                                   CT,C,C
    ca_audit_signing                                             ,,P
  2. 验证 HSM 是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias -h HSM -f HSM.pwd
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    HSM:ca_signing                                               CTu,Cu,Cu
    HSM:ca_ocsp_signing                                          u,u,u
    HSM:subsystem/pki.example.com                                u,u,u
    HSM:ca_audit_signing                                         u,u,Pu
    HSM:sslserver/pki.example.com                                u,u,u
7.4.1.8.5. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ~/.dogtag/pki-tomcat/ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 CA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.1.9. 在内部令牌中使用现有密钥安装 CA

按照以下步骤,从存储在内部令牌中的现有 CA 安装带有系统密钥、CSR 和证书的 CA 子系统。

为避免与现有 CA 子系统冲突,新的 CA 子系统使用新的 SSL 服务器和子系统证书,因此它们不会包含在安装过程中。

在安装前,请确保配置了 安装前提条件

7.4.1.9.1. 启动 CA 子系统安装

准备一个文件,如 ca-existing-certs-step1.cfg,其中包含第一个部署配置。

部署配置示例位于 /usr/share/pki/server/examples/installation/ca-existing-certs-step1.cfg

执行以下命令:

Copy to Clipboard Toggle word wrap
$ pkispawn -f ca-existing-certs-step1.cfg -s CA

它会在 Tomcat 实例中安装 CA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/ca/alias

由于没有指定 CSR 路径参数,因此它不会生成 CA 系统和 admin 密钥。

7.4.1.9.2. 导出现有系统密钥、CSR、证书
  1. 使用以下命令,将现有 CA 中的系统密钥和证书导出到 PKCSeffort 文件中:

    Copy to Clipboard Toggle word wrap
    $ pki -d /var/lib/pki/pki-tomcat/conf/alias -c Secret.123 pkcs12-export \
      --pkcs12 ca-certs.p12 \
      --password Secret.123
    $ pki pkcs12-cert-del --pkcs12-file ca-certs.p12 --pkcs12-password Secret.123 sslserver
    $ pki pkcs12-cert-del --pkcs12-file ca-certs.p12 --pkcs12-password Secret.123 subsystem
  2. 使用以下命令从现有 CA 导出 CSR:

    Copy to Clipboard Toggle word wrap
    $ echo "-----BEGIN CERTIFICATE REQUEST-----" > ca_signing.csr
    $ sed -n "/^ca.signing.certreq=/ s/^=// p" < /var/lib/pki/pki-tomcat/conf/ca/CS.cfg >> ca_signing.csr $ echo "-----END CERTIFICATE REQUEST-----" >> ca_signing.csr $ echo "-----BEGIN CERTIFICATE REQUEST-----" > ca_ocsp_signing.csr $ sed -n "/^ca.ocsp_signing.certreq=/ s/[=]=// p" < /var/lib/pki/pki-tomcat/conf/ca/CS.cfg >> ca_ocsp_signing.csr
    $ echo "-----END CERTIFICATE REQUEST-----" >> ca_ocsp_signing.csr
    
    $ echo "-----BEGIN CERTIFICATE REQUEST-----" > ca_audit_signing.csr
    $ sed -n "/^ca.audit_signing.certreq=/ s/[=]*=// p" < /var/lib/pki/pki-tomcat/conf/ca/CS.cfg >> ca_audit_signing.csr
    $ echo "-----END CERTIFICATE REQUEST-----" >> ca_audit_signing.csr
7.4.1.9.3. 完成 CA 子系统安装
  1. 准备另一个文件,如 ca-existing-certs-step2.cfg,其中包含第二个部署配置。

    文件可以从第一个文件创建,即 ca-existing-certs-step1.cfg,其更改如下:

    Copy to Clipboard Toggle word wrap
    pki_external_step_two=True
  2. 使用以下参数在 PKCSautomationhub 文件中指定现有密钥和证书:

    Copy to Clipboard Toggle word wrap
    pki_pkcs12_path=ca-certs.p12
    pki_pkcs12_password=Secret.123
  3. 使用以下参数指定现有的 CSR:

    Copy to Clipboard Toggle word wrap
    pki_ca_signing_csr_path=ca_signing.csr
    pki_ocsp_signing_csr_path=ca_ocsp_signing.csr
    pki_audit_signing_csr_path=ca_audit_signing.csr

    部署配置示例位于 /usr/share/pki/server/examples/installation/ca-existing-certs-step2.cfg

  4. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ca-existing-certs-step2.cfg -s CA
7.4.1.9.4. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CTu,Cu,Cu
ca_ocsp_signing                                              u,u,u
subsystem                                                    u,u,u
ca_audit_signing                                             u,u,Pu
sslserver                                                    u,u,u
7.4.1.9.5. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ~/.dogtag/pki-tomcat/ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 CA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.1.10. 使用外部 CA 签名证书安装 CA

外部 CA 是与正在安装的 PKI 子系统相同的安全域中的 CA。

按照以下步骤安装带有外部 CA 签名证书的 CA 子系统。

在安装前,请确保配置了 安装前提条件

7.4.1.10.1. 启动 CA 子系统安装

准备一个文件,如 ca-external-cert-step1.cfg,其中包含第一个部署配置。

部署配置示例位于 /usr/share/pki/server/examples/installation/ca-external-cert-step1.cfg

执行以下命令:

Copy to Clipboard Toggle word wrap
$ pkispawn -f ca-external-cert-step1.cfg -s CA

它会在 Tomcat 实例中安装 CA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/ca/alias

它还在服务器 NSS 数据库和指定路径中的 CSR 中生成 CA 签名密钥。

7.4.1.10.2. 生成 CA 签名证书

使用 CSR 发布 CA 签名证书:

  • 对于 root CA 安装,生成自签名 CA 签名证书。
  • 对于从属 CA 安装,请将 CSR 提交给外部 CA,以发布 CA 签名证书。

将 CA 签名证书存储在文件中,如 ca_signing.crt。CA 签名证书可以指定为单个证书或 PEM 格式的 PKCS #7 证书链。

如果 CA 签名证书由外部 CA 发布,请将外部 CA 证书链存储在文件中,如 root-ca_signing.crt

证书链可以指定为单个证书或 PEM 格式的 PKCS #7 证书链。

证书链应包含从 root CA 到发布 CA 签名证书的外部 CA 的所有 CA,但它不应包含 CA 签名证书本身。

7.4.1.10.3. 完成 CA 子系统安装
  1. 准备另一个文件,如 ca-external-cert-step2.cfg,其中包含第二个部署配置。文件可以从第一个文件创建,即 ca-external-cert-step1.cfg,其更改如下:

    Copy to Clipboard Toggle word wrap
    pki_external_step_two=True
  2. 使用以下参数指定自定义 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    pki_ca_signing_cert_path=ca_signing.crt
  3. 如果 CA 签名证书由外部 CA 发布,请使用以下参数指定外部 CA 证书链:

    Copy to Clipboard Toggle word wrap
    pki_cert_chain_nickname=root-ca_signing
    pki_cert_chain_path=root-ca_signing.crt

    部署配置示例位于 /usr/share/pki/server/examples/installation/ca-external-cert-step2.cfg

  4. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ca-external-cert-step2.cfg -s CA
7.4.1.10.4. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

root-ca_signing                                              CT,C,C
ca_signing                                                   CTu,Cu,Cu
ca_ocsp_signing                                              u,u,u
subsystem                                                    u,u,u
ca_audit_signing                                             u,u,Pu
sslserver                                                    u,u,u
7.4.1.10.5. 验证管理证书
  1. 导入外部 CA 证书链:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 client-cert-import --ca-cert root-ca_signing.crt
  2. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  3. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ~/.dogtag/pki-tomcat/ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  4. 运行以下命令,验证 admin 证书是否可用于访问 CA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.1.11. 使用 HSM 安装 CA

按照以下步骤安装带有自签名 CA 签名证书的 CA 子系统,其中系统证书及其密钥存储在 HSM 中。

在安装前,请确保配置了 安装前提条件

7.4.1.11.1. 安装 CA 子系统
  1. 准备包含部署配置的文件,如 ca.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    pki_hsm_enable=True
    pki_hsm_libfile=/usr/lib64/pkcs11/libsofthsm2.so
    pki_hsm_modulename=softhsm
    pki_token_name=HSM
    pki_token_password=Secret.HSM
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [CA]
    pki_admin_email=caadmin@example.com
    pki_admin_name=caadmin
    pki_admin_nickname=caadmin
    pki_admin_password=Secret.123
    pki_admin_uid=caadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldap://localhost.localdomain:389
    pki_ds_base_dn=dc=ca,dc=pki,dc=example,dc=com
    pki_ds_database=ca
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    
    pki_ca_signing_nickname=ca_signing
    pki_ocsp_signing_nickname=ca_ocsp_signing
    pki_audit_signing_nickname=ca_audit_signing
    pki_sslserver_nickname=sslserver/pki.example.com
    pki_subsystem_nickname=subsystem
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ca.cfg -s CA

它会在 Tomcat 实例中安装 CA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/ca/alias
7.4.1.11.2. 验证系统证书
  1. 验证内部令牌是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    ca_signing                                                   CT,C,C
    ca_audit_signing                                             ,,P
  2. 验证 HSM 是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias -h HSM -f HSM.pwd
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    HSM:ca_signing                                               CTu,Cu,Cu
    HSM:ca_ocsp_signing                                          u,u,u
    HSM:subsystem                                                u,u,u
    HSM:ca_audit_signing                                         u,u,Pu
    HSM:sslserver/pki.example.com                                u,u,u
7.4.1.11.3. 验证 Admin 证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ~/.dogtag/pki-tomcat/ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 CA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.1.12. 使用 LDAPS 连接安装 CA

按照以下步骤安装带有安全数据库连接的 CA 子系统。

在安装前,请确保配置了 安装前提条件

7.4.1.12.1. DS 配置

完成上述先决条件后,如果您选择在 DS 实例创建过程中使用 DS bootstrap 证书,请将 bootstrap 自签名证书导出到 ds_signing.crt 中,如下所示:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /etc/dirsrv/slapd-localhost -n Self-Signed-CA -a > ds_signing.crt
7.4.1.12.2. CA 子系统安装

准备部署配置,如 ca-secure-ds.cfg,以部署 CA 子系统。默认情况下,子系统部署到名为 pki-tomcat 的 Tomcat 实例中。

部署配置示例位于 /usr/share/pki/server/examples/installation/ca-secure-ds.cfg

要开始安装,请执行以下命令:

Copy to Clipboard Toggle word wrap
$ pkispawn -f ca-secure-ds.cfg -s CA
7.4.1.12.3. CA 系统证书

安装带有其密钥的 CA 系统证书将生成并存储在服务器 NSS 数据库中,即 /var/lib/pki/pki-tomcat/conf/alias,DS 签名证书将导入到相同的 NSS 数据库中:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ds_signing                                                   CT,C,C
ca_signing                                                   CTu,Cu,Cu
ca_ocsp_signing                                              u,u,u
subsystem                                                    u,u,u
ca_audit_signing                                             u,u,Pu
sslserver                                                    u,u,u

如果需要,可以使用以下命令将 CA 系统证书导出到 PEM 文件中:

Copy to Clipboard Toggle word wrap
$ pki-server cert-export <cert ID> --cert-file <filename>

CA 系统证书的有效 ID 是:

  • ca_signing
  • ca_ocsp_signing
  • ca_audit_signing
  • subsystem
  • sslserver

请注意,pki-server cert-export 命令采用证书 ID 而不是 nickname。为了简单起见,本例中的 nicknames 配置为与证书 ID 相同。

7.4.1.12.4. CA 数据库配置

CA 数据库配置可以使用以下命令显示:

Copy to Clipboard Toggle word wrap
$ pki-server ca-db-config-show
  Hostname: pki.example.com
  Port: 636
  Secure: true
  Authentication: BasicAuth
  Bind DN: cn=Directory Manager
  Bind Password Prompt: internaldb
  Database: ca
  Base DN: dc=ca,dc=pki,dc=example,dc=com
  Multiple suffix: false
  Maximum connections: 15
  Minimum connections: 3
7.4.1.12.5. 管理证书

安装后,admin 证书和密钥存储在 ~/.dogtag/pki-tomcat/ca_admin_cert.p12 中。PKCS fulfillment 密码在 pki_client_pkcs12_password 参数中指定。

要使用管理证书,请执行以下操作:

  1. 从服务器 NSS 数据库导出 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki-server cert-export ca_signing --cert-file ca_signing.crt
  2. 将 CA 签名证书导入到客户端 NSS 数据库中:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  3. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki pkcs12-import \
        --pkcs12 ~/.dogtag/pki-tomcat/ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  4. 要验证 admin 证书是否可以用于访问 CA 子系统,请执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pki -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1
7.4.1.12.6. 从 CA 获取真实 DS 证书

如果需要,请按照以下步骤 获取 CA 发布的实际 DS 证书。

7.4.1.13. 安装从属 CA

按照以下步骤,使用根 CA 发布的签名证书安装从属 CA 子系统。

在安装前,请确保配置了 安装前提条件

7.4.1.13.1. 安装从属 CA 子系统
  1. 准备包含部署配置的文件,如 subca.cfg

    部署配置示例位于 /usr/share/pki/server/examples/installation/subca.cfg

    它假定 root CA 已在 https://root.example.com:8443 中运行,root CA 签名证书已导出到 root-ca_signing.crt 中。

  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f subca.cfg -s CA

它会在 Tomcat 实例中安装 CA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/ca/alias
7.4.1.13.2. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CTu,Cu,Cu
ca_ocsp_signing                                              u,u,u
subsystem                                                    u,u,u
ca_audit_signing                                             u,u,Pu
sslserver                                                    u,u,u
7.4.1.13.3. 验证管理证书
  1. 导入 root CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki pkcs12-import \
        --pkcs12 /root/.dogtag/pki-tomcat/ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书可用于访问从属 CA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -n caadmin ca-user-show caadmin
    --------------
    User "caadmin"
    --------------
      User ID: caadmin
      Full name: caadmin
      Email: caadmin@example.com
      Type: adminType
      State: 1

7.4.2. 安装 KRA 子系统

7.4.2.1. 安装 KRA

按照以下步骤安装 KRA 子系统。

在安装前,请确保配置了 安装前提条件

7.4.2.1.1. 安装 KRA 子系统安装
  1. 准备包含部署配置的文件,如 kra.cfg。部署配置示例位于 /usr/share/pki/server/examples/installation/kra.cfg
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f kra.cfg -s KRA

它会在 Tomcat 实例中安装 KRA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/kra/alias
注意

当在没有其他子系统的新系统上安装 KRA 时,需要提供 CA 的 root 证书。在 pki_cert_chain_path 中指定 CA PKCS Serial7 PEM 文件的路径。这允许服务器在联系安全域时验证 CA 的 SSL 服务器证书。在 KRA 安装之前,管理员可以安全地将 CA root 证书(仅限公钥!)传输到系统。

7.4.2.1.2. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CT,C,C
kra_transport                                                u,u,u
kra_storage                                                  u,u,u
subsystem                                                    u,u,u
kra_audit_signing                                            u,u,Pu
sslserver                                                    u,u,u
7.4.2.1.3. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 KRA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin kra-user-show kraadmin
    ---------------
    User "kraadmin"
    ---------------
      User ID: kraadmin
      Full name: kraadmin
      Email: kraadmin@example.com
      Type: adminType
      State: 1
7.4.2.1.4. 验证 KRA 连接器

验证 KRA 连接器是否在 CA 子系统中配置:

Copy to Clipboard Toggle word wrap
$ pki -c Secret.123 -n caadmin ca-kraconnector-show

Host: pki.example.com:8443
Enabled: true
Local: false
Timeout: 30
URI: /kra/agent/kra/connector
Transport Cert:

<base-64 certificate>

7.4.2.2. 安装 KRA 克隆

按照以下步骤将 KRA 子系统安装为现有 KRA 子系统的克隆。

在安装前,请确保配置了 安装前提条件

7.4.2.2.1. 导出现有的 KRA 系统证书

在现有系统中,使用以下命令导出 KRA 系统证书:

Copy to Clipboard Toggle word wrap
$ pki-server kra-clone-prepare \
    --pkcs12-file kra-certs.p12 \
    --pkcs12-password Secret.123

命令将以下证书(包括证书链)及其密钥导出到 PKCSautomationhub 文件中:

  • KRA 存储证书
  • KRA 传输证书
  • 审计签名证书
  • 子系统证书

请注意,现有的 SSL 服务器证书没有导出。

如有必要,第三方证书(如信任锚)可以使用以下命令添加到同一 PKCSeffort 文件中:

Copy to Clipboard Toggle word wrap
$ pki -d /var/lib/pki/pki-tomcat/conf/alias -f /var/lib/pki/pki-tomcat/conf/password.conf \
    pkcs12-cert-import <nickname> \
    --pkcs12-file kra-certs.p12 \
    --pkcs12-password Secret.123 \
    --append
7.4.2.2.2. 安装 KRA 子系统

准备部署配置,如 kra-clone.cfg,以部署 KRA 子系统克隆。默认情况下,子系统部署到名为 pki-tomcat 的 Tomcat 实例中。

部署配置示例位于 /usr/share/pki/server/examples/installation/kra-clone.cfg

它假设:

  • 主 CA 和 KRA 子系统在 https://primary.example.com:8443 中运行。
  • CA 签名证书已导出到 ca_signing.crt
  • 管理证书和密钥已导出到 ca_admin_cert.p12 中。
  • PKCS fulfillment 密码在 pki_client_pkcs12_password 参数中指定。

详情请参阅安装 CA

要启动安装,请执行以下命令:

Copy to Clipboard Toggle word wrap
$ pkispawn -f kra-clone.cfg -s KRA
7.4.2.2.3. KRA 系统证书

安装后,现有 KRA 系统证书(包括证书链)及其密钥存储在服务器 NSS 数据库中(例如 /var/lib/pki/pki-tomcat/conf/alias),并为新实例创建新的 SSL 服务器证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CT,C,C
kra_storage                                                  u,u,u
sslserver                                                    u,u,u
subsystem                                                    u,u,u
kra_audit_signing                                            u,u,Pu
kra_transport                                                u,u,u

如果需要,可以使用以下命令将证书导出到 PEM 文件中:

Copy to Clipboard Toggle word wrap
$ pki-server cert-export <cert ID> --cert-file <filename>

KRA 的有效证书 ID 是:

  • kra_storage_signing
  • kra_transport_signing
  • kra_audit_signing
  • subsystem
  • sslserver

请注意,pki-server cert-export 命令采用证书 ID 而不是 nickname。为了简单起见,本例中的 nicknames 配置为与证书 ID 相同。

7.4.2.2.4. 管理证书

要使用管理证书,请执行以下操作:

  1. 将 CA 签名证书导入到客户端 NSS 数据库中:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 要验证 admin 证书是否可以用于访问 KRA 子系统克隆,请执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pki -n caadmin kra-user-show kraadmin
    ---------------
    User "kraadmin"
    ---------------
      User ID: kraadmin
      Full name: kraadmin
      Email: kraadmin@example.com
      Type: adminType
      State: 1

7.4.2.3. 使用 HSM 安装 KRA 克隆

按照以下步骤将 KRA 子系统安装为现有 KRA 子系统的克隆,其中系统证书及其密钥存储在 HSM 中。

由于证书和密钥已在 HSM 上,因此不需要将它们导出到 PKCSrhgs 文件来创建克隆。

在安装前,请确保配置了 安装前提条件

7.4.2.3.1. 安装 KRA 子系统

注意:假设 CA 签名证书已导出到 ca_signing.crt 中。

  1. 准备包含部署配置的文件,如 kra.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    pki_hsm_enable=True
    pki_hsm_libfile=/usr/lib64/pkcs11/libsofthsm2.so
    pki_hsm_modulename=softhsm
    pki_token_name=HSM
    pki_token_password=Secret.HSM
    
    pki_cert_chain_path=ca_signing.crt
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [KRA]
    pki_admin_email=kraadmin@example.com
    pki_admin_name=kraadmin
    pki_admin_nickname=kraadmin
    pki_admin_password=Secret.123
    pki_admin_uid=kraadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldap://localhost.localdomain:389
    pki_ds_base_dn=dc=kra,dc=pki,dc=example,dc=com
    pki_ds_database=kra
    pki_ds_password=Secret.123
    
    pki_security_domain_hostname=pki.example.com
    pki_security_domain_https_port=8443
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_storage_nickname=kra_storage
    pki_transport_nickname=kra_transport
    pki_audit_signing_nickname=kra_audit_signing
    pki_sslserver_nickname=sslserver/replica.example.com
    pki_subsystem_nickname=subsystem
    
    pki_storage_token=HSM
    pki_transport_token=HSM
    pki_audit_signing_token=HSM
    pki_sslserver_token=HSM
    pki_subsystem_token=HSM
    
    pki_clone=True
    pki_clone_replicate_schema=True
    pki_clone_uri=https://pki.example.com:8443
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f kra.cfg -s KRA

它会在 Tomcat 实例中安装 KRA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/kra/alias
7.4.2.3.2. 验证系统证书
  1. 验证内部令牌是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    ca_signing                                                   CT,C,C
    sslserver/replica.example.com                                ,,
    kra_audit_signing                                            ,,P
  2. 验证 HSM 是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias -h HSM -f HSM.pwd
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    HSM:kra_transport                                            u,u,u
    HSM:kra_storage                                              u,u,u
    HSM:subsystem                                                u,u,u
    HSM:kra_audit_signing                                        u,u,Pu
    HSM:sslserver/replica.example.com                            u,u,u
7.4.2.3.3. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 KRA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin kra-user-show kraadmin
    ---------------
    User "kraadmin"
    ---------------
      User ID: kraadmin
      Full name: kraadmin
      Email: kraadmin@example.com
      Type: adminType
      State: 1
7.4.2.3.4. 验证 KRA 连接器

验证 KRA 连接器是否在 CA 子系统中配置:

Copy to Clipboard Toggle word wrap
$ pki -c Secret.123 -n caadmin ca-kraconnector-show

Host: pki.example.com:8443
Enabled: true
Local: false
Timeout: 30
URI: /kra/agent/kra/connector
Transport Cert:

<base-64 certificate>

7.4.2.4. 使用 ECC 安装 KRA

按照以下步骤,使用 ECC 安装 KRA 子系统。

支持的 ECC curves:

  • nistp256
  • nistp384
  • nistp521

支持的 ECC 密钥算法:

  • SHA256withEC
  • SHA384withEC
  • SHA512withEC

在安装前,请确保配置了 安装前提条件

7.4.2.4.1. 安装 KRA 子系统
  1. 准备包含部署配置的文件,如 kra.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [KRA]
    pki_admin_cert_file=ca_admin.cert
    pki_admin_email=kraadmin@example.com
    pki_admin_name=kraadmin
    pki_admin_nickname=kraadmin
    pki_admin_password=Secret.123
    pki_admin_uid=kraadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldap://localhost.localdomain:389
    pki_ds_base_dn=dc=kra,dc=pki,dc=example,dc=com
    pki_ds_database=kra
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_storage_nickname=kra_storage
    pki_storage_key_type=rsa
    pki_storage_key_algorithm=SHA512withRSA
    pki_storage_key_size=2048
    pki_storage_signing_algorithm=SHA512withRSA
    
    pki_transport_nickname=kra_transport
    pki_transport_key_type=rsa
    pki_transport_key_algorithm=SHA512withRSA
    pki_transport_key_size=2048
    pki_transport_signing_algorithm=SHA512withRSA
    
    pki_audit_signing_nickname=kra_audit_signing
    pki_audit_signing_key_type=ecc
    pki_audit_signing_key_algorithm=SHA512withEC
    pki_audit_signing_key_size=nistp521
    pki_audit_signing_signing_algorithm=SHA512withEC
    
    pki_sslserver_nickname=sslserver
    pki_sslserver_key_type=ecc
    pki_sslserver_key_algorithm=SHA512withEC
    pki_sslserver_key_size=nistp521
    
    pki_subsystem_nickname=subsystem
    pki_subsystem_key_type=ecc
    pki_subsystem_key_algorithm=SHA512withEC
    pki_subsystem_key_size=nistp521
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f kra.cfg -s KRA

它会在 Tomcat 实例中安装 KRA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/kra/alias
7.4.2.4.2. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CT,C,C
kra_transport                                                u,u,u
kra_storage                                                  u,u,u
subsystem                                                    u,u,u
kra_audit_signing                                            u,u,Pu
sslserver                                                    u,u,u
7.4.2.4.3. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 KRA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin kra-user-show kraadmin
    --------------
    User "kraadmin"
    --------------
      User ID: kraadmin
      Full name: kraadmin
      Email: kraadmin@example.com
      Type: adminType
      State: 1

7.4.2.5. 使用 HSM 安装 KRA

按照以下步骤安装 KRA 子系统,其中系统证书及其密钥存储在 HSM 中。

在安装前,请确保配置了 安装前提条件

7.4.2.5.1. 安装 KRA 子系统
  1. 准备包含部署配置的文件,如 kra.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    pki_hsm_enable=True
    pki_hsm_libfile=/usr/lib64/pkcs11/libsofthsm2.so
    pki_hsm_modulename=softhsm
    pki_token_name=HSM
    pki_token_password=Secret.HSM
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [KRA]
    pki_admin_cert_file=ca_admin.cert
    pki_admin_email=kraadmin@example.com
    pki_admin_name=kraadmin
    pki_admin_nickname=kraadmin
    pki_admin_password=Secret.123
    pki_admin_uid=kraadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldap://localhost.localdomain:389
    pki_ds_base_dn=dc=kra,dc=pki,dc=example,dc=com
    pki_ds_database=kra
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_storage_nickname=kra_storage
    pki_transport_nickname=kra_transport
    pki_audit_signing_nickname=kra_audit_signing
    pki_sslserver_nickname=sslserver/pki.example.com
    pki_subsystem_nickname=subsystem
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f kra.cfg -s KRA

它会在 Tomcat 实例中安装 KRA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/kra/alias
7.4.2.5.2. 验证系统证书
  1. 验证内部令牌是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    ca_signing                                                   CT,C,C
    kra_audit_signing                                            ,,P
  2. 验证 HSM 是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias -h HSM -f HSM.pwd
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    HSM:kra_transport                                            u,u,u
    HSM:kra_storage                                              u,u,u
    HSM:subsystem                                                u,u,u
    HSM:kra_audit_signing                                        u,u,Pu
    HSM:sslserver/pki.example.com                                u,u,u
7.4.2.5.3. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 KRA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin kra-user-show kraadmin
    ---------------
    User "kraadmin"
    ---------------
      User ID: kraadmin
      Full name: kraadmin
      Email: kraadmin@example.com
      Type: adminType
      State: 1
7.4.2.5.4. 验证 KRA 连接器

验证 KRA 连接器是否在 CA 子系统中配置:

Copy to Clipboard Toggle word wrap
$ pki -c Secret.123 -n caadmin ca-kraconnector-show

Host: pki.example.com:8443
Enabled: true
Local: false
Timeout: 30
URI: /kra/agent/kra/connector
Transport Cert:

<base-64 certificate>

7.4.2.6. 使用 LDAPS 连接安装 KRA

按照以下步骤安装带有安全数据库连接的 KRA 子系统。

在安装前,请确保配置了 安装前提条件

7.4.2.6.1. DS 配置

配置上述先决条件后,如果您选择在 DS 实例创建过程中使用 DS bootstrap 证书,请将 bootstrap 自签名证书导出到 ds_signing.crt 中,如下所示:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /etc/dirsrv/slapd-localhost -n Self-Signed-CA -a > ds_signing.crt
7.4.2.6.2. 安装 KRA 子系统
  1. 准备包含部署配置的文件,如 kra.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_server_database_password=Secret.123
    
    [KRA]
    pki_admin_cert_file=ca_admin.cert
    pki_admin_email=kraadmin@example.com
    pki_admin_name=kraadmin
    pki_admin_nickname=kraadmin
    pki_admin_password=Secret.123
    pki_admin_uid=kraadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldaps://localhost.localdomain:636
    pki_ds_secure_connection_ca_nickname=ds_signing
    pki_ds_secure_connection_ca_pem_file=ds_signing.crt
    
    pki_ds_base_dn=dc=kra,dc=pki,dc=example,dc=com
    pki_ds_database=kra
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_storage_nickname=kra_storage
    pki_transport_nickname=kra_transport
    pki_audit_signing_nickname=kra_audit_signing
    pki_sslserver_nickname=sslserver
    pki_subsystem_nickname=subsystem
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f kra.cfg -s KRA

它会在 Tomcat 实例中安装 KRA 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/kra/alias
7.4.2.6.3. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ds_signing                                                   CT,C,C
ca_signing                                                   CT,C,C
kra_transport                                                u,u,u
kra_storage                                                  u,u,u
subsystem                                                    u,u,u
kra_audit_signing                                            u,u,Pu
sslserver                                                    u,u,u
7.4.2.6.4. 验证数据库配置

验证 KRA 数据库是否配置了安全连接:

Copy to Clipboard Toggle word wrap
$ pki-server kra-db-config-show
  Hostname: pki.example.com
  Port: 636
  Secure: true
  Authentication: BasicAuth
  Bind DN: cn=Directory Manager
  Bind Password Prompt: internaldb
  Database: kra
  Base DN: dc=kra,dc=pki,dc=example,dc=com
  Multiple suffix: false
  Maximum connections: 15
  Minimum connections: 3
7.4.2.6.5. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 KRA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin kra-user-show kraadmin
    ---------------
    User "kraadmin"
    ---------------
      User ID: kraadmin
      Full name: kraadmin
      Email: kraadmin@example.com
      Type: adminType
      State: 1
7.4.2.6.6. 验证 KRA 连接器

验证 KRA 连接器是否在 CA 子系统中配置:

Copy to Clipboard Toggle word wrap
$ pki -c Secret.123 -n caadmin ca-kraconnector-show

Host: pki.example.com:8443
Enabled: true
Local: false
Timeout: 30
URI: /kra/agent/kra/connector
Transport Cert:

<base-64 certificate>
7.4.2.6.7. 从 CA 获取真实 DS 证书

如果需要,请按照以下步骤 获取 CA 发布的实际 DS 证书。

7.4.2.7. 安装独立 KRA

按照以下步骤安装独立 KRA 子系统。

常规的 KRA 安装中,CA 会自动发布 KRA 证书,KRA 将加入 CA 的安全域。

在独立 KRA 安装中,KRA 证书被手动发布,KRA 有自己的安全域。

安装过程由多个步骤组成:

  • 生成证书请求
  • 发布证书
  • 使用证书完成安装
7.4.2.7.1. 生成证书请求
  1. 准备包含第一个部署配置的文件,如 kra-standalone-step1.cfg

    部署配置示例位于 /usr/share/pki/server/examples/installation/kra-standalone-step1.cfg

  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f kra-standalone-step1.cfg -s KRA

它在 /var/lib/pki/pki-tomcat/alias 中创建 NSS 数据库,并在指定的路径中生成 CSR。

7.4.2.7.2. 发布证书

通过向外部 CA 提交 CSR 以发布 KRA 系统证书,使用 CSR 获取 KRA 证书。在以下部分中,假设 KRA 系统证书存储在以下文件中:

  • kra_storage.crt
  • kra_transport.crt
  • subsystem.crt
  • sslserver.crt
  • kra_audit_signing.crt
  • kra_admin.crt
7.4.2.7.3. 完成安装
  1. 准备另一个文件,如 kra-standalone-step2.cfg,其中包含第二个部署配置。文件可以从第一个文件(即 kra-standalone-step1.cfg )创建,其更改如下:

    Copy to Clipboard Toggle word wrap
    pki_external_step_two=True
  2. 使用以下参数指定证书文件:

    Copy to Clipboard Toggle word wrap
    pki_storage_cert_path=kra_storage.crt
    pki_transport_cert_path=kra_transport.crt
    pki_subsystem_cert_path=subsystem.crt
    pki_sslserver_cert_path=sslserver.crt
    pki_audit_signing_cert_path=kra_audit_signing.crt
    pki_admin_cert_path=kra_admin.crt

    每个证书文件都可以包含单个 PEM 证书或 PKCS #7 证书链。

  3. 使用以下参数指定 CA 证书链:

    Copy to Clipboard Toggle word wrap
    pki_cert_chain_nickname=ca_signing
    pki_cert_chain_path=ca_signing.crt

    CA 证书链文件也可以包含单个 PEM 证书或 PKCS #7 证书链。

    部署配置示例位于 /usr/share/pki/server/examples/installation/kra-standalone-step2.cfg

  4. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f kra-standalone-step2.cfg -s KRA
7.4.2.7.4. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki pkcs12-import \
        --pkcs12 kra_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 KRA 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -n kraadmin kra-user-show kraadmin
    ---------------
    User "kraadmin"
    ---------------
      User ID: kraadmin
      Full name: kraadmin
      Email: kraadmin@example.com
      Type: adminType
      State: 1

7.4.3. 安装 OCSP 子系统

7.4.3.1. 安装 OCSP

按照以下步骤安装 OCSP 子系统。

在安装前,请确保配置了 安装前提条件

7.4.3.1.1. 安装 OCSP 子系统
  1. 准备包含部署配置的文件,如 ocsp.cfg。部署配置示例位于 /usr/share/pki/server/examples/installation/ocsp.cfg
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ocsp.cfg -s OCSP

它会在 Tomcat 实例中安装 OCSP 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/ocsp/alias
注意

当在没有其他子系统的新系统上安装 OCSP 时,需要提供 CA 的 root 证书。在 pki_cert_chain_path 中指定 CA PKCS Serial7 PEM 文件的路径。这允许服务器在联系安全域时验证 CA 的 SSL 服务器证书。在 OCSP 安装前,管理员最多可安全地将 CA root 证书(仅限公钥)传输到系统。

7.4.3.1.2. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CT,C,C
ocsp_signing                                                 u,u,u
subsystem                                                    u,u,u
ocsp_audit_signing                                           u,u,Pu
sslserver                                                    u,u,u
7.4.3.1.3. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 OCSP 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin ocsp-user-show ocspadmin
    ----------------
    User "ocspadmin"
    ----------------
      User ID: ocspadmin
      Full name: ocspadmin
      Email: ocspadmin@example.com
      Type: adminType
      State: 1
7.4.3.1.4. 验证 OCSP 客户端
  1. 将 CA 中的 CRL 发布到目录服务器,如下所示:

    1. 进入 CA Agent UI (https://pki.example.com:8443/ca/agent/ca/)。
    2. 单击 Update Directory Server
    3. 选择 将证书撤销列表更新为目录
    4. 单击 Update Directory
  2. 验证 OCSPClient 是否可用于验证证书:

    Copy to Clipboard Toggle word wrap
    $ OCSPClient \
     -d /var/lib/pki/pki-tomcat/conf/alias \
     -h pki.example.com \
     -p 8080 \
     -t /ocsp/ee/ocsp \
     -c ca_signing \
     --serial 1
    CertID.serialNumber=1
    CertStatus=Good

7.4.3.2. 使用 ECC 安装 OCSP

按照以下步骤使用 ECC 安装 OCSP 子系统。

支持的 ECC curves:

  • nistp256
  • nistp384
  • nistp521

支持的 ECC 密钥算法:

  • SHA256withEC
  • SHA384withEC
  • SHA512withEC

在安装前,请确保配置了 安装前提条件

7.4.3.2.1. 安装 OCSP 子系统
  1. 准备包含部署配置的文件,如 ocsp.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [OCSP]
    pki_admin_cert_file=ca_admin.cert
    pki_admin_email=ocspadmin@example.com
    pki_admin_name=ocspadmin
    pki_admin_nickname=ocspadmin
    pki_admin_password=Secret.123
    pki_admin_uid=ocspadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldap://localhost.localdomain:389
    pki_ds_base_dn=dc=ocsp,dc=pki,dc=example,dc=com
    pki_ds_database=ocsp
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_ocsp_signing_nickname=ocsp_signing
    pki_ocsp_signing_key_type=ecc
    pki_ocsp_signing_key_algorithm=SHA512withEC
    pki_ocsp_signing_key_size=nistp521
    
    pki_audit_signing_nickname=ocsp_audit_signing
    pki_audit_signing_key_type=ecc
    pki_audit_signing_key_algorithm=SHA512withEC
    pki_audit_signing_key_size=nistp521
    pki_audit_signing_signing_algorithm=SHA512withEC
    
    pki_sslserver_nickname=sslserver
    pki_sslserver_key_type=ecc
    pki_sslserver_key_algorithm=SHA512withEC
    pki_sslserver_key_size=nistp521
    
    pki_subsystem_nickname=subsystem
    pki_subsystem_key_type=ecc
    pki_subsystem_key_algorithm=SHA512withEC
    pki_subsystem_key_size=nistp521
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ocsp.cfg -s OCSP

它会在 Tomcat 实例中安装 OCSP 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/kra/alias
7.4.3.2.2. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CT,C,C
subsystem                                                    u,u,u
ocsp_audit_signing                                           u,u,Pu
ocsp_signing                                                 u,u,u
sslserver                                                    u,u,u
7.4.3.2.3. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 OCSP 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin ocsp-user-show ocspadmin
    --------------
    User "ocspadmin"
    --------------
      User ID: ocspadmin
      Full name: ocspadmin
      Email: ocspadmin@example.com
      Type: adminType
      State: 1

7.4.3.3. 使用 HSM 安装 OCSP

按照以下步骤安装一个 OCSP 子系统,系统证书及其密钥存储在 HSM 中。

在安装前,请确保配置了 安装前提条件

7.4.3.3.1. 安装 OCSP 子系统
  1. 准备包含部署配置的文件,如 ocsp.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    pki_hsm_enable=True
    pki_hsm_libfile=/usr/lib64/pkcs11/libsofthsm2.so
    pki_hsm_modulename=softhsm
    pki_token_name=HSM
    pki_token_password=Secret.HSM
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [OCSP]
    pki_admin_cert_file=ca_admin.cert
    pki_admin_email=ocspadmin@example.com
    pki_admin_name=ocspadmin
    pki_admin_nickname=ocspadmin
    pki_admin_password=Secret.123
    pki_admin_uid=ocspadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldap://localhost.localdomain:389
    pki_ds_base_dn=dc=ocsp,dc=pki,dc=example,dc=com
    pki_ds_database=ocsp
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_ocsp_signing_nickname=ocsp_signing
    pki_audit_signing_nickname=ocsp_audit_signing
    pki_sslserver_nickname=sslserver/pki.example.com
    pki_subsystem_nickname=subsystem
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ocsp.cfg -s OCSP

它会在 Tomcat 实例中安装 OCSP 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/ocsp/alias
7.4.3.3.2. 验证系统证书
  1. 验证内部令牌是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    ca_signing                                                   CT,C,C
    ocsp_audit_signing                                           ,,P
  2. 验证 HSM 是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias -h HSM -f HSM.pwd
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    HSM:ocsp_signing                                             u,u,u
    HSM:subsystem                                                u,u,u
    HSM:ocsp_audit_signing                                       u,u,Pu
    HSM:sslserver/pki.example.com                                u,u,u
7.4.3.3.3. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 OCSP 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin ocsp-user-show ocspadmin
    ----------------
    User "ocspadmin"
    ----------------
      User ID: ocspadmin
      Full name: ocspadmin
      Email: ocspadmin@example.com
      Type: adminType
      State: 1
7.4.3.3.4. 验证 OCSP 客户端
  1. 将 CA 中的 CRL 发布到目录服务器,如下所示:

    1. 进入 CA Agent UI (https://pki.example.com:8443/ca/agent/ca/)。
    2. 单击 Update Directory Server
    3. 选择 将证书撤销列表更新为目录
    4. 单击 Update Directory
  2. 验证 OCSPClient 是否可用于验证证书:

    Copy to Clipboard Toggle word wrap
    $ OCSPClient \
     -d /var/lib/pki/pki-tomcat/conf/alias \
     -h pki.example.com \
     -p 8080 \
     -t /ocsp/ee/ocsp \
     -c ca_signing \
     --serial 1
    CertID.serialNumber=1
    CertStatus=Good

7.4.3.4. 使用 LDAPS 连接安装 OCSP

按照以下步骤安装带有安全数据库连接的 OCSP 子系统。

在安装前,请确保配置了 安装前提条件

7.4.3.4.1. DS 配置

完成上述先决条件后,如果您选择在 DS 实例创建过程中使用 DS bootstrap 证书,请将 bootstrap 自签名证书导出到 ds_signing.crt 中,如下所示

Copy to Clipboard Toggle word wrap
$ certutil -L -d /etc/dirsrv/slapd-localhost -n Self-Signed-CA -a > ds_signing.crt
7.4.3.4.2. 安装 OCSP 子系统
  1. 准备包含部署配置的文件,如 ocsp.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [OCSP]
    pki_admin_cert_file=ca_admin.cert
    pki_admin_email=ocspadmin@example.com
    pki_admin_name=ocspadmin
    pki_admin_nickname=ocspadmin
    pki_admin_password=Secret.123
    pki_admin_uid=ocspadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldaps://localhost.localdomain:636
    pki_ds_secure_connection_ca_nickname=ds_signing
    pki_ds_secure_connection_ca_pem_file=ds_signing.crt
    
    pki_ds_base_dn=dc=ocsp,dc=pki,dc=example,dc=com
    pki_ds_database=ocsp
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_ocsp_signing_nickname=ocsp_signing
    pki_audit_signing_nickname=ocsp_audit_signing
    pki_sslserver_nickname=sslserver
    pki_subsystem_nickname=subsystem
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ocsp.cfg -s OCSP

它会在 Tomcat 实例中安装 OCSP 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/ocsp/alias
7.4.3.4.3. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ds_signing                                                   CT,C,C
ca_signing                                                   CT,C,C
ocsp_signing                                                 u,u,u
subsystem                                                    u,u,u
ocsp_audit_signing                                           u,u,Pu
sslserver                                                    u,u,u
7.4.3.4.4. 验证数据库配置

验证 OCSP 数据库是否配置了安全连接:

Copy to Clipboard Toggle word wrap
$ pki-server ocsp-db-config-show
  Hostname: pki.example.com
  Port: 636
  Secure: true
  Authentication: BasicAuth
  Bind DN: cn=Directory Manager
  Bind Password Prompt: internaldb
  Database: ocsp
  Base DN: dc=ocsp,dc=pki,dc=example,dc=com
  Multiple suffix: false
  Maximum connections: 15
  Minimum connections: 3
7.4.3.4.5. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 OCSP 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin ocsp-user-show ocspadmin
    ----------------
    User "ocspadmin"
    ----------------
      User ID: ocspadmin
      Full name: ocspadmin
      Email: ocspadmin@example.com
      Type: adminType
      State: 1
7.4.3.4.6. 验证 OCSP 客户端
  1. 将 CA 中的 CRL 发布到目录服务器,如下所示:

    1. 进入 CA Agent UI (https://pki.example.com:8443/ca/agent/ca/)。
    2. 单击 Update Directory Server
    3. 选择 将证书撤销列表更新为目录
    4. 单击 Update Directory
  2. 验证 OCSPClient 是否可用于验证证书:

    Copy to Clipboard Toggle word wrap
    $ OCSPClient \
     -d /var/lib/pki/pki-tomcat/conf/alias \
     -h pki.example.com \
     -p 8080 \
     -t /ocsp/ee/ocsp \
     -c ca_signing \
     --serial 1
    CertID.serialNumber=1
    CertStatus=Good
7.4.3.4.7. 从 CA 获取真实 DS 证书

如果需要,请按照以下步骤 获取 CA 发布的实际 DS 证书。

7.4.3.5. 安装独立 OCSP

按照以下步骤安装独立 OCSP 子系统。

在常规 OCSP 安装中,CA 会自动发布 OCSP 证书,OCSP 将加入 CA 的安全域。

在独立 OCSP 安装过程中,会手动发布 OCSP 证书,OCSP 有自己的安全域。

安装过程由多个步骤组成:

  • 生成证书请求
  • 发布证书
  • 使用证书完成安装
7.4.3.5.1. 生成证书请求
  1. 准备一个文件,如 ocsp-standalone-step1.cfg,其中包含第一个部署配置。

    部署配置示例位于 /usr/share/pki/server/examples/installation/ocsp-standalone-step1.cfg

  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ocsp-standalone-step1.cfg -s OCSP

它在 /var/lib/pki/pki-tomcat/alias 中创建 NSS 数据库,并在指定的路径中生成 CSR。

7.4.3.5.2. 发布证书

使用 CSR 将 CSR 提交给外部 CA 来获取 OCSP 证书,以发布 KRA 系统证书。在以下部分中,假设 KRA 系统证书存储在以下文件中:

  • ocsp_signing.crt
  • subsystem.crt
  • sslserver.crt
  • ocsp_audit_signing.crt
  • ocsp_admin.crt
7.4.3.5.3. 完成安装
  1. 准备另一个文件,如 ocsp-standalone-step2.cfg,其中包含第二个部署配置。文件可以从第一个文件(即 ocsp-standalone-step1.cfg )创建,其更改如下:

    Copy to Clipboard Toggle word wrap
    pki_external_step_two=True
  2. 使用以下参数指定证书文件:

    Copy to Clipboard Toggle word wrap
    pki_ocsp_signing_cert_path=ocsp_signing.crt
    pki_subsystem_cert_path=subsystem.crt
    pki_sslserver_cert_path=sslserver.crt
    pki_audit_signing_cert_path=ocsp_audit_signing.crt
    pki_admin_cert_path=ocsp_admin.crt

    每个证书文件都可以包含单个 PEM 证书或 PKCS #7 证书链。

  3. 使用以下参数指定 CA 证书链:

    Copy to Clipboard Toggle word wrap
    pki_cert_chain_nickname=ca_signing
    pki_cert_chain_path=ca_signing.crt

    CA 证书链文件也可以包含单个 PEM 证书或 PKCS #7 证书链。

    部署配置示例位于 /usr/share/pki/server/examples/installation/ocsp-standalone-step2.cfg

  4. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f ocsp-standalone-step2.cfg -s OCSP
7.4.3.5.4. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki pkcs12-import \
        --pkcs12 ocsp_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 OCSP 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -n ocspadmin ocsp-user-show ocspadmin
    ----------------
    User "ocspadmin"
    ----------------
      User ID: ocspadmin
      Full name: ocspadmin
      Email: ocspadmin@example.com
      Type: adminType
      State: 1

7.4.4. 安装 TKS 子系统

7.4.4.1. 安装 TKS

按照以下步骤安装 TKS 子系统。

在安装前,请确保配置了 安装前提条件

7.4.4.1.1. 安装 TKS 子系统
  1. 准备包含部署配置的文件,如 tks.cfg。部署配置示例位于 /usr/share/pki/server/examples/installation/tks.cfg
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f tks.cfg -s TKS

它会在 Tomcat 实例中安装 TKS 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/tks/alias
注意

当在没有其他子系统的新系统上安装 TKS 时,需要提供 CA 的 root 证书。在 pki_cert_chain_path 中指定 CA PKCS Serial7 PEM 文件的路径。这允许服务器在联系安全域时验证 CA 的 SSL 服务器证书。在 TKS 安装前,管理员最多安全地将 CA root 证书(仅限公钥!)传输到系统。

7.4.4.1.2. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CT,C,C
subsystem                                                    u,u,u
tks_audit_signing                                            u,u,Pu
sslserver                                                    u,u,u
7.4.4.1.3. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 TKS 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin tks-user-show tksadmin
    ---------------
    User "tksadmin"
    ---------------
      User ID: tksadmin
      Full name: tksadmin
      Email: tksadmin@example.com
      Type: adminType
      State: 1

7.4.4.2. 使用 HSM 安装 TKS

按照以下步骤安装存储在 HSM 中的系统证书及其密钥的 TKS 子系统。

在安装前,请确保配置了 安装前提条件

7.4.4.2.1. 安装 TKS 子系统
  1. 准备包含部署配置的文件,如 tks.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    pki_hsm_enable=True
    pki_hsm_libfile=/usr/lib64/pkcs11/libsofthsm2.so
    pki_hsm_modulename=softhsm
    pki_token_name=HSM
    pki_token_password=Secret.HSM
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [TKS]
    pki_admin_cert_file=ca_admin.cert
    pki_admin_email=tksadmin@example.com
    pki_admin_name=tksadmin
    pki_admin_nickname=tksadmin
    pki_admin_password=Secret.123
    pki_admin_uid=tksadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldap://localhost.localdomain:389
    pki_ds_base_dn=dc=tks,dc=pki,dc=example,dc=com
    pki_ds_database=tks
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_audit_signing_nickname=tks_audit_signing
    pki_sslserver_nickname=sslserver
    pki_subsystem_nickname=subsystem
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f tks.cfg -s TKS

它会在 Tomcat 实例中安装 TKS 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/tks/alias
7.4.4.2.2. 验证系统证书
  1. 验证内部令牌是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    ca_signing                                                   CT,C,C
    tks_audit_signing                                            ,,P
  2. 验证 HSM 是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias -h HSM -f HSM.pwd
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    HSM:subsystem                                                u,u,u
    HSM:tks_audit_signing                                        u,u,Pu
    HSM:sslserver                                                u,u,u
7.4.4.2.3. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 TKS 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin tks-user-show tksadmin
    ---------------
    User "tksadmin"
    ---------------
      User ID: tksadmin
      Full name: tksadmin
      Email: tksadmin@example.com
      Type: adminType
      State: 1

7.4.4.3. 使用 LDAPS 连接安装 TKS

按照以下步骤安装带有安全数据库连接的 TKS 子系统。

在安装前,请确保配置了 安装前提条件

7.4.4.3.1. DS 配置

完成上述先决条件后,如果您选择在 DS 实例创建过程中使用 DS bootstrap 证书,请将 bootstrap 自签名证书导出到 ds_signing.crt 中,如下所示:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /etc/dirsrv/slapd-localhost -n Self-Signed-CA -a > ds_signing.crt
7.4.4.3.2. 安装 TKS 子系统
  1. 准备包含部署配置的文件,如 tks.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [TKS]
    pki_admin_cert_file=ca_admin.cert
    pki_admin_email=tksadmin@example.com
    pki_admin_name=tksadmin
    pki_admin_nickname=tksadmin
    pki_admin_password=Secret.123
    pki_admin_uid=tksadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldaps://localhost.localdomain:636
    pki_ds_secure_connection_ca_nickname=ds_signing
    pki_ds_secure_connection_ca_pem_file=ds_signing.crt
    
    pki_ds_base_dn=dc=tks,dc=pki,dc=example,dc=com
    pki_ds_database=tks
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_audit_signing_nickname=tks_audit_signing
    pki_sslserver_nickname=sslserver
    pki_subsystem_nickname=subsystem
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f tks.cfg -s TKS

它会在 Tomcat 实例中安装 TKS 子系统(默认为 pki-tomcat),并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/tks/alias
7.4.4.3.3. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ds_signing                                                   CT,C,C
ca_signing                                                   CT,C,C
subsystem                                                    u,u,u
tks_audit_signing                                            u,u,Pu
sslserver                                                    u,u,u
7.4.4.3.4. 验证数据库配置

验证 TKS 数据库是否已配置有安全连接:

Copy to Clipboard Toggle word wrap
$ pki-server tks-db-config-show
  Hostname: pki.example.com
  Port: 636
  Secure: true
  Authentication: BasicAuth
  Bind DN: cn=Directory Manager
  Bind Password Prompt: internaldb
  Database: tks
  Base DN: dc=tks,dc=pki,dc=example,dc=com
  Multiple suffix: false
  Maximum connections: 15
  Minimum connections: 3
7.4.4.3.5. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 TKS 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin tks-user-show tksadmin
    ---------------
    User "tksadmin"
    ---------------
      User ID: tksadmin
      Full name: tksadmin
      Email: tksadmin@example.com
      Type: adminType
      State: 1
7.4.4.3.6. 从 CA 获取真实 DS 证书

如果需要,请按照以下步骤 获取 CA 发布的实际 DS 证书。

7.4.5. 安装 TPS 子系统

7.4.5.1. 安装 TPS

按照此流程安装 TPS 子系统。

在安装前,请确保配置了 安装前提条件

7.4.5.1.1. 安装 TPS 子系统
  1. 准备包含部署配置的文件,如 tps.cfg。部署配置示例位于 /usr/share/pki/server/examples/installation/tps.cfg
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f tps.cfg -s TPS

它在 Tomcat 实例(默认为 pki-tomcat)中安装 TPS 子系统,并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/tps/alias
注意

当在没有其他子系统的新系统上安装 TPS 时,需要提供 CA 的 root 证书。在 pki_cert_chain_path 中指定 CA PKCS Serial7 PEM 文件的路径。这允许服务器在联系安全域时验证 CA 的 SSL 服务器证书。在 TPS 安装之前,管理员最多可安全地将 CA root 证书(仅限公钥)传输到系统。

7.4.5.1.2. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ca_signing                                                   CT,C,C
subsystem                                                    u,u,u
tps_audit_signing                                            u,u,Pu
sslserver                                                    u,u,u
7.4.5.1.3. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 TPS 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin tps-user-show tpsadmin
    ---------------
    User "tpsadmin"
    ---------------
      User ID: tpsadmin
      Full name: tpsadmin
      Email: tpsadmin@example.com
      Type: adminType
      State: 1
      TPS Profiles:
        All Profiles

7.4.5.2. 使用 HSM 安装 TPS

按照以下步骤安装一个 TPS 子系统,其中系统证书及其密钥存储在 HSM 中。

在安装前,请确保配置了 安装前提条件

7.4.5.2.1. 安装 TPS 子系统
  1. 准备包含部署配置的文件,如 tps.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    pki_hsm_enable=True
    pki_hsm_libfile=/usr/lib64/pkcs11/libsofthsm2.so
    pki_hsm_modulename=softhsm
    pki_token_name=HSM
    pki_token_password=Secret.HSM
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [TPS]
    pki_admin_cert_file=ca_admin.cert
    pki_admin_email=tpsadmin@example.com
    pki_admin_name=tpsadmin
    pki_admin_nickname=tpsadmin
    pki_admin_password=Secret.123
    pki_admin_uid=tpsadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldap://localhost.localdomain:389
    pki_ds_base_dn=dc=tps,dc=pki,dc=example,dc=com
    pki_ds_database=tps
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_audit_signing_nickname=tps_audit_signing
    pki_sslserver_nickname=sslserver
    pki_subsystem_nickname=subsystem
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f tps.cfg -s TPS

它在 Tomcat 实例(默认为 pki-tomcat)中安装 TPS 子系统,并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/tps/alias
7.4.5.2.2. 验证系统证书
  1. 验证内部令牌是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    ca_signing                                                   CT,C,C
    tps_audit_signing                                            ,,P
  2. 验证 HSM 是否包含以下证书:

    Copy to Clipboard Toggle word wrap
    $ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias -h HSM -f HSM.pwd
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    HSM:subsystem                                                u,u,u
    HSM:tps_audit_signing                                        u,u,Pu
    HSM:sslserver                                                u,u,u
7.4.5.2.3. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 TPS 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin tps-user-show tpsadmin
    ---------------
    User "tpsadmin"
    ---------------
      User ID: tpsadmin
      Full name: tpsadmin
      Email: tpsadmin@example.com
      Type: adminType
      State: 1
      TPS Profiles:
        All Profiles

7.4.5.3. 使用 LDAPS 连接安装 TPS

按照此流程安装 TPS 子系统,一个安全数据库连接。

在安装前,请确保配置了 安装前提条件

7.4.5.3.1. DS 配置

完成上述先决条件后,如果您选择在 DS 实例创建过程中使用 DS bootstrap 证书,请将 bootstrap 自签名证书导出到 ds_signing.crt 中,如下所示:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /etc/dirsrv/slapd-localhost -n Self-Signed-CA -a > ds_signing.crt
7.4.5.3.2. 安装 TPS 子系统
  1. 准备包含部署配置的文件,如 tps.cfg

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=pki-tomcat
    pki_https_port=8443
    pki_http_port=8080
    pki_server_database_password=Secret.123
    
    [Tomcat]
    pki_ajp_port=8009
    pki_tomcat_server_port=8005
    
    [TPS]
    pki_admin_cert_file=ca_admin.cert
    pki_admin_email=tpsadmin@example.com
    pki_admin_name=tpsadmin
    pki_admin_nickname=tpsadmin
    pki_admin_password=Secret.123
    pki_admin_uid=tpsadmin
    
    pki_client_pkcs12_password=Secret.123
    
    pki_ds_url=ldaps://localhost.localdomain:636
    pki_ds_secure_connection_ca_nickname=ds_signing
    pki_ds_secure_connection_ca_pem_file=ds_signing.crt
    
    pki_ds_base_dn=dc=tps,dc=pki,dc=example,dc=com
    pki_ds_database=tps
    pki_ds_password=Secret.123
    
    pki_security_domain_name=EXAMPLE
    pki_security_domain_user=caadmin
    pki_security_domain_password=Secret.123
    
    pki_audit_signing_nickname=tps_audit_signing
    pki_sslserver_nickname=sslserver
    pki_subsystem_nickname=subsystem
  2. 执行以下命令:

    Copy to Clipboard Toggle word wrap
    $ pkispawn -f tps.cfg -s TPS

它在 Tomcat 实例(默认为 pki-tomcat)中安装 TPS 子系统,并创建以下 NSS 数据库:

  • 服务器 NSS 数据库: /var/lib/pki/pki-tomcat/conf/alias
  • 管理 NSS 数据库: ~/.dogtag/pki-tomcat/tps/alias
7.4.5.3.3. 验证系统证书

验证服务器 NSS 数据库是否包含以下证书:

Copy to Clipboard Toggle word wrap
$ certutil -L -d /var/lib/pki/pki-tomcat/conf/alias

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

ds_signing                                                   CT,C,C
ca_signing                                                   CT,C,C
subsystem                                                    u,u,u
tps_audit_signing                                            u,u,Pu
sslserver                                                    u,u,u
7.4.5.3.4. 验证数据库配置

验证 TPS 数据库是否配置了安全连接:

Copy to Clipboard Toggle word wrap
$ pki-server tps-db-config-show
  Hostname: pki.example.com
  Port: 636
  Secure: true
  Authentication: BasicAuth
  Bind DN: cn=Directory Manager
  Bind Password Prompt: internaldb
  Database: tps
  Base DN: dc=tps,dc=pki,dc=example,dc=com
  Multiple suffix: false
  Maximum connections: 15
  Minimum connections: 3
7.4.5.3.5. 验证管理证书
  1. 导入 CA 签名证书:

    Copy to Clipboard Toggle word wrap
    $ pki nss-cert-import --cert ca_signing.crt --trust CT,C,C ca_signing
  2. 使用以下命令将 admin 证书和密钥导入到客户端 NSS 数据库(默认为 ~/.dogtag/nssdb):

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 pkcs12-import \
        --pkcs12 ca_admin_cert.p12 \
        --pkcs12-password Secret.123
  3. 运行以下命令,验证 admin 证书是否可用于访问 TPS 子系统:

    Copy to Clipboard Toggle word wrap
    $ pki -c Secret.123 -n caadmin tps-user-show tpsadmin
    ---------------
    User "tpsadmin"
    ---------------
      User ID: tpsadmin
      Full name: tpsadmin
      Email: tpsadmin@example.com
      Type: adminType
      State: 1
      TPS Profiles:
        All Profiles
7.4.5.3.6. 从 CA 获取真实 DS 证书

如果需要,请按照以下步骤 获取 CA 发布的实际 DS 证书。

7.4.6. 安装 EST 子系统

7.4.6.1. 安装 EST

按照以下步骤安装 EST 子系统

EST 子系统 需要在运行实例的服务器上安装软件包 dogtag-pki-est

Copy to Clipboard Toggle word wrap
# dnf install dogtag-pki-est
7.4.6.1.1. 先决条件

在 CA 上,为 EST RA 帐户创建用户组(EST RA Agents),以及一个 EST RA 帐户(est-ra-1)。EST 子系统使用此帐户向 CA 子系统进行身份验证,并代表 EST 客户端发布证书。

请注意:以下命令假设 CA 在带有默认端口的同一主机上运行,nssdb 位于 ~/.dogtag/nssdb 中。要指向不同主机上的 CA,或者具有不同端口的 CA 使用 options -h <hostname> , -p & lt;port_number> or -U <CA_uri。要使用不同的 nssdb,请使用选项 &lt ;nssdb_path>

Copy to Clipboard Toggle word wrap
# pki -n caadmin ca-group-add "EST RA Agents"
---------------------------
Added group "EST RA Agents"
---------------------------
  Group ID: EST RA Agents

# pki -n caadmin ca-user-add \
      est-ra-1 --fullName "EST RA 1" --password password4ESTUser
---------------------
Added user "est-ra-1"
---------------------
  User ID: est-ra-1
  Full name: EST RA 1
# pki -n caadmin ca-group-member-add "EST RA Agents" est-ra-1
-----------------------------
  Added group member "est-ra-1"
-----------------------------
  User: est-ra-1

添加并启用 EST 注册配置集 estServiceCert.cfg,它包括在 /usr/share/pki/ca/profiles/ca 中(如果安装了 dogtag-pki-ca 软件包):

Copy to Clipboard Toggle word wrap
# pki -n caadmin ca-profile-add --raw /usr/share/pki/ca/profiles/ca/estServiceCert.cfg
----------------------------
Added profile estServiceCert
----------------------------
# pki -n caadmin ca-profile-enable estServiceCert
--------------------------------
Enabled profile "estServiceCert"
--------------------------------

注:在启用配置集前,请验证选项是否满足部署要求。

EST 子系统具有自己的域身份验证,具有单独的用户 DB。支持基于 LDAP,支持基于PostreSQL 和文件的 DB。为了进行身份验证,必须提前准备 DB。在 Configure EST Realm DB 中提供了设置用户 DB 的说明。

7.4.6.1.2. 安装 EST 子系统

安装有两个选项:

  • 使用 pkispawn 进行基本安装。请参阅 安装 EST pkispawn;
  • 使用 pki-server 进行高级安装。请参阅 安装 EST pki-server。它需要更多手动配置,但提供对安装过程的更多控制,因为可以验证每个步骤并最终自定义并重复。
7.4.6.1.3. 验证 EST

在注册证书前,EST 用户必须在用户数据库中添加。用户管理不是 EST 命令的一部分,必须在 EST 之外完成。有关如何在每个数据库平台上添加用户的信息,请参阅管理指南中的。

使用 curl 验证 EST 子系统 是否已部署,并且能够与 CA 子系统 通信。

以下命令输出从服务器获取的 CA 签名证书:

Copy to Clipboard Toggle word wrap
$ curl --cacert ./ca_signing.crt  https://<EST_HOSTNAME>:<EST_PORT>/.well-known/est/cacerts | openssl base64 -d | openssl pkcs7 -inform der -print_certs | openssl x509 -text -noout

$EST_HOSTNAME$EST_PORT 分别替换为 EST 子系统 的主机名和端口。

如果成功,在标准输出中打印服务器 CA 证书链,命令将以状态 0 (成功)退出。

要使用 curl 测试注册,请生成 CSR 并使用与域关联的 EST 用户 DB 的用户提交。以下命令将执行注册并打印最终证书:

Copy to Clipboard Toggle word wrap
$ pki nss-cert-request --csr testServer.csr \
    --ext /usr/share/pki/server/certs/sslserver.conf --subject 'CN=test.example.com'
$ openssl req -in testServer.csr -outform der | openssl base64 -out testServer.p10

$ curl --cacert ./ca_signing.crt --anyauth -u est-test-user:Secret.123 \
    --data-binary @testServer.p10 -H "Content-Type: application/pkcs10" \
    -o newCert.p7 https://<EST_HOSTNAME>:<EST_PORT>/.well-known/est/simpleenroll

$ openssl base64 -d -in newCert.p7 | openssl pkcs7 -inform der -print_certs | openssl x509 -text -noout

注: testServer.p10 文件是一个 base64 编码 pkcs10 DER,没有标头/页脚。

如果注册是使用上述 curl 命令中的 mutual TLS 身份验证完成的,则必须将凭证替换为证书和相关密钥,如下所示:

Copy to Clipboard Toggle word wrap
$ curl --cacert ./ca_signing.crt --cert cert.pem --key key-x-x.pem \
    --data-binary @testServer.p10 -H "Content-Type: application/pkcs10"
    -o newCert.p7 https://<EST_HOSTNAME>:<EST_PORT>/.well-known/est/simpleenroll

执行 mutual TLS 身份验证时,CSR 主题和 SAN 必须匹配用于身份验证的证书的主题和 SAN,才能获得授权。不同的是,使用基本身份验证,CSR 主题和 SAN 将使用用户全名或用户 ID 进行验证。对于 simpleenroll 操作,可以禁用此检查。要禁用此检查,请在文件 /etc/pki/<instance_name>/est/authorizer.conf 文件中添加以下选项

Copy to Clipboard Toggle word wrap
enrollMatchTLSSubjSAN=false

7.4.6.2. 使用 pkispawn安装

配置了 安装 EST 中的先决条件后,就可以安装 EST

7.4.6.2.1. 安装

/usr/share/pki/server/examples/installation/est.cfg 中提供了一个 pkispawn 安装配置示例,其中包含以下内容:

Copy to Clipboard Toggle word wrap
[DEFAULT]
pki_server_database_password=Secret.123
pki_admin_setup=False

[EST]
est_realm_type=ds
est_realm_url=ldap://localhost.localdomain:389
est_realm_bind_password=Secret.123
est_ca_user_name=est-ra-1
est_ca_user_password=Secret.est
pki_sslserver_nickname=sslserver

以下命令将 EST 子系统安装到已具有 CA 子系统的 PKI 服务器实例上。默认情况下,PKI 服务器实例称为 pki-tomcat,它使用 HTTP 端口 8080 和 HTTPS 端口 8443。要使用不同的实例名称或端口号,请参阅命令的 man page。

要在 CA 的同一实例和 DS 域中安装 EST,请运行以下命令:

Copy to Clipboard Toggle word wrap
# pkispawn \
    -f /usr/share/pki/server/examples/installation/est.cfg \
    -s EST \
    -D est_realm_url=ldap://estds.example.com:389 \
    -v

请注意,est_realm_url 指向用户 DB。可以根据部署修改的其他配置有:

Copy to Clipboard Toggle word wrap
est_ca_profile=estServiceCert
est_ca_user_name=
est_ca_user_password=
est_ca_user_password_file=
est_ca_user_certificate=
est_realm_type=
est_realm_custom=
est_realm_url=
est_realm_auth_type=BasicAuth
est_realm_bind_dn=cn=Directory Manager
est_realm_bind_password=
est_realm_nickname=
est_realm_user=
est_realm_username=
est_realm_password=
est_realm_users_dn=ou=people,dc=est,dc=pki,dc=example,dc=com
est_realm_groups_dn=ou=groups,dc=est,dc=pki,dc=example,dc=com
est_realm_statements=/usr/share/pki/est/conf/realm/postgresql/statements.conf
est_authorizer_exec_path=/usr/share/pki/est/bin/estauthz

est_ca swig 提供与 EST 子系统的 CA 中配置的用户和配置文件相关的信息。

est_authorizer_exec_path 是负责验证授权的可执行文件的路径。默认脚本 estauthz 是一个一个简单的授权示例,它只检查用户是否具有 estclient 角色。

est_realm swig 选项允许一个来自定义域。可能的类型有: ds、postgresql 和 in-memory。

例如,要使用 PostgreSQL 安装 EST,该命令为:

Copy to Clipboard Toggle word wrap
# pkispawn \
    -f /usr/share/pki/server/examples/installation/est.cfg \
    -s EST \
    -D est_realm_url="jdbc:postgresql://postgresql.example.com:5432/est?ssl=true&sslmode=require" \
    -D est_realm_type=postgresql \
    -D est_realm_user=est \
    -D est_realm_password=mysecretpassword \
    -v

est_realm_custom 是 Tomcat 的自定义域配置的路径,如果提供,它将覆盖所有其他域相关配置。

7.4.6.2.1.1. 使用证书在单独的实例上安装

EST 也可以安装在与 CA 分开的 Tomcat 实例上。

除了以上配置外,在单独的实例中安装 EST 还需要一些额外的步骤来配置证书。

请注意:以下命令假设 CA 在带有默认端口的同一主机上运行,nssdb 位于 ~/.dogtag/nssdb 中。要指向不同主机上的 CA,或者具有不同端口的 CA 使用 options -h <hostname> , -p & lt;port_number> or -U <CA_uri。要使用不同的 nssdb,请使用选项 &lt ;nssdb_path>

EST 服务器证书(以及要与 CA 连接的子系统证书)必须预先发布,并提供给 pkispawn 带有它的完整链(通过 pki_server_pkcs12 swig 参数在 pkispawn 命令行中提供的完整链),如下所示。

务必要确保 PKCSmtc 中的证书别名与 EST 使用的别名匹配。对于 SSL 证书,est.cfg 中配置的别名是 sslserver,但可以修改。

要使用证书创建 PKCS12,可以从 CA 请求 EST 的服务器证书(之后是 RA 用户证书),然后导出它们,如下所示:

Copy to Clipboard Toggle word wrap
# pki nss-cert-request --csr estSSLServer.csr \
    --ext /usr/share/pki/server/certs/sslserver.conf --subject 'CN=est.example.com'

# pki -n caadmin \
    ca-cert-issue \
    --csr-file estSSLServer.csr \
    --profile caServerCert \
    --output-file estSSLServer.crt

# pki nss-cert-import --cert estSSLServer.crt sslserver

# pki pkcs12-cert-import sslserver --pkcs12-file $SHARED/est_server.p12 --pkcs12-password Secret.123

同样,为 EST 生成子系统证书,与以前在 CA 中配置的 EST RA 用户(est-ra-1)关联,并在 SSL 服务器证书中的同一 PKCS12 中添加:

Copy to Clipboard Toggle word wrap
# pki nss-cert-request --csr est-ra-1.csr \
    --ext /usr/share/pki/server/certs/admin.conf \
    --subject 'CN=EST Subsystem Certificate,OU=pki-tomcat,O=EXAMPLE'

# pki -n caadmin -cert-issue \
    --csr-file est-ra-1.csr \
    --profile caSubsystemCert \
    --output-file est-ra-1.crt

# pki nss-cert-import --cert est-ra-1.crt "est-ra-1"

# pki -n caadmin ca-user-cert-add est-ra-1 --input est-ra-1.crt

# pki pkcs12-cert-import "est-ra-1" --pkcs12-file $SHARED/est_server.p12 --pkcs12-password Secret.123 --append

使用生成的 PKCS vmcore 捆绑包,部署 EST 的命令是:

Copy to Clipboard Toggle word wrap
# pkispawn \
    -f /usr/share/pki/server/examples/installation/est.cfg \
    -s EST \
    -D est_realm_url=ldap://estds.example.com:389 \
    -D pki_ca_uri=https://ca.example.com:8443 \
    -D est_ca_user_password= \
    -D est_ca_user_certificate=est-ra-1 \
    -D pki_server_pkcs12_path=est_server.p12 \
    -D pki_server_pkcs12_password=Secret.123 \
    -v
7.4.6.2.1.2. 在没有证书的独立实例上安装

如果没有为 pkispawn 提供 PKCSburst 捆绑包证书,在安装过程中,会自动使用为 EST 配置的配置集发布 EST 服务器证书。与 CA 的连接使用配置文件中提供的凭证(用户名/密码)。在这种情况下,需要 CA 签名证书。可以通过以下命令在 CA 服务器中检索证书:

Copy to Clipboard Toggle word wrap
# pki-server cert-export ca_signing --cert-file ca_signing.crt

使用以下命令可以安装 EST :

Copy to Clipboard Toggle word wrap
# pkispawn \
    -f /usr/share/pki/server/examples/installation/est.cfg \
    -s EST \
    -D est_realm_url=ldap://estds.example.com:389 \
    -D pki_ca_uri=https://ca.example.com:8443 \
    -D pki_cert_chain_path=ca_signing.crt \
    -D pki_cert_chain_nickname=caSigning \
    -v

安装后,如果 EST 发布的证书不适用于服务器,则可以使用其他配置文件更新 EST 服务器证书。另外,TLS 身份验证的证书可以在 EST nssdb 中添加,并在文件 /var/lib/pki/pki-tomcat/conf/est/backend.conf 中配置。

7.4.6.2.2. 删除 EST

要删除 EST 子系统,可以使用 pkidestroy 命令,如下所示:

Copy to Clipboard Toggle word wrap
# pkidestroy -s EST -v

注意:配置和日志文件夹不会被删除。要删除所有内容,请添加选项 :--remove-conf-- remove-logs

7.4.6.3. 使用 pki-server进行 EST 安装

配置了 安装 EST 的先决条件后,就可以安装 EST

PKI Tomcat 实例必须已经可用,如果不存在,则可以创建一个具有 pki-server create 的新实例(请参见 此处的更多详情)。

在 pki 服务器实例内创建 EST 子系统

Copy to Clipboard Toggle word wrap
# pki-server est-create

配置 issuance 后端。类 org.dogtagpki.est.DogtagRABackend 用于 EST 实例与 CA 通信。这要求:

  • 指向 CA 子系统的 url 参数;
  • EST RA 帐户的凭证使用以下任一方法来授权帐户使用配置的注册配置文件来请求证书:

    • 如果 EST RA 帐户为 usernamepassword
    • 属于 EST RA 帐户的 TLS 客户端证书
  • 注册 资料.
Copy to Clipboard Toggle word wrap
# cat >/var/lib/pki/pki-tomcat/conf/est/backend.conf <<EOF
class=org.dogtagpki.est.DogtagRABackend
url=https://$(hostname):8443
profile=estServiceCert
username=est-ra-1
password=password4ESTUser
EOF

注意:要使用 TLS mutual 身份验证,而不是 用户名/密码,需要:

  • 从 CA 获取 TLS 客户端证书颁发,使用 EST 实例的加密令牌在实例别名目录中生成密钥和 CSR;
  • 将证书导入到 EST 实例的加密令牌 ;
  • 将 nickname 分配给参数 nickname (保留 用户名和密码 );
  • 将证书添加到 CA 上的 EST RA 用户帐户。

有关如何获取证书并使用 TLS mutual 配置配置 EST 的示例,请参见 此处的 pkispawn 安装指南中。

配置请求授权。类 org.dogtagpki.est.ExternalProcessRequestAuthorizer 允许将授权委托给使用参数 可执行文件 配置的外部进程:

Copy to Clipboard Toggle word wrap
# cat >/var/lib/pki/pki-tomcat/conf/est/authorizer.conf <<EOF
class=org.dogtagpki.est.ExternalProcessRequestAuthorizer
executable=/usr/share/pki/est/bin/estauthz
EOF

本例中的可执行脚本对用户角色执行简单的检查,它位于 /usr/share/pki/est/bin/estauthz。如果需要采用更为复杂的授权框架,则可以替换它。

部署 EST 应用程序:

Copy to Clipboard Toggle word wrap
# pki-server est-deploy

配置身份验证。身份验证允许使用 Tomcat 的域或为 dogtag 开发的域。例如,我们在内存域中使用:

Copy to Clipboard Toggle word wrap
# cat >/var/lib/pki/pki-tomcat/conf/est/realm.conf <<EOF
class=com.netscape.cms.realm.PKIInMemoryRealm
username=alice
password=4me2Test
roles=estclient
EOF

最后,重启服务器:

Copy to Clipboard Toggle word wrap
# pki-server restart --wait

7.4.6.4. 配置 EST Realm DB

7.4.6.4.1. 准备 DS DB

如果您已选择在添加用户前使用 LDAP 实例进行用户管理,请确保您配置了目录服务器并添加基本条目。目录服务器设置说明可在 安装前提条件 中找到。

用户 DB 需要一个组节点用于人,另一个用于组。一个简单的 ldif 文件位于 /usr/share/pki/est/conf/realm/ds/create.ldif 中。此基本 DN 为 dc=pki,dc=example,dc=com,但可以修改,并在以下 EST 安装过程中指定的新值。您可以使用以下命令导入该文件:

Copy to Clipboard Toggle word wrap
ldapadd -x -H ldap://<ds_server_hostname>:<ds_server_port> \
    -D "cn=Directory Manager"  -w Secret.123 \
    -f /usr/share/pki/est/conf/realm/ds/create.ldif

该命令还会创建组 EST Users,它用作访问 EST 用户的默认组。使用不同的组需要修改授权脚本 /usr/share/pki/est/bin/estauthz

7.4.6.4.2. 准备 PostgreSQL 数据库

如果您选择使用 PostgreSQL 进行用户管理,您首先需要准备一个数据库,例如,以访问数据库。可在此处找到 安装说明。

安装后,使用以下命令验证数据库连接:

Copy to Clipboard Toggle word wrap
$ psql -U est -d est

要使用 PostreSQL DB,应该使用 /usr/share/pki/est/conf/realm/postgresql/create.sql 中提供的 sql 文件创建用户表,然后使用用户信息填充。这些表可以使用以下命令创建:

Copy to Clipboard Toggle word wrap
$ psql -U est -t -A -f /usr/share/pki/est/conf/realm/postgresql/create.sql

该命令还会创建组 EST Users,它用作访问 EST 用户的默认组。使用不同的组需要修改授权脚本 /usr/share/pki/est/bin/estauthz

可以使用不同的架构,但在这种情况下,必须提供自定义 statement.conf 文件(在同一文件夹中提供)才能检索来自 DB 的用户信息。

另外,PostgreSQL 的 Java 驱动程序需要安装在 EST 服务器中,并链接到 pki 的库文件夹中:

Copy to Clipboard Toggle word wrap
# dnf install -y postgresql-jdbc
# ln -s /usr/share/java/postgresql-jdbc/postgresql.jar /usr/share/pki/server/common/lib
# ln -s /usr/share/java/ongres-scram/client.jar /usr/share/pki/server/common/lib
# ln -s /usr/share/java/ongres-scram/common.jar /usr/share/pki/server/common/lib
# ln -s /usr/share/java/ongres-stringprep/saslprep.jar /usr/share/pki/server/common/lib/
# ln -s /usr/share/java/ongres-stringprep/stringprep.jar /usr/share/pki/server/common/lib/
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat, Inc.