7.3. 设置根证书颁发机构(示例)
如果您已熟悉 pkispawn
,您可以直接转至 第 7.4 节 “安装 PKI 子系统”)
本节提供了如何安装 root CA 的两个示例:
-
使用
pkispawn
单步方法安装 root CA。 -
使用
pkispawn
双步骤方法安装 root CA。
7.3.1. 使用 pkispawn
单步方法安装 root CA
使用单步方法配置 RootCA 实例需要创建配置文件并运行 pkispawn
工具。
在本例中,根CA 安装在 rhcs10.example.com (以及其他实例)上,其内部目录服务器位于 rhds11.example.com 上。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
- 您已遵循 第 6.4.2 节 “目录服务器实例创建” 中的步骤。在我们的示例中,CC-RSA-RootCA-LDAP 是 RootCA 的内部数据库。
流程
在要托管 RHCS 实例的机器上的所选位置(如
/root/pki_rsa
)创建一个 CA 安装文件,该文件将托管 RHCS 实例(rhcs10.example.com)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd /root/pki_rsa vi rootca_inst.cfg
# cd /root/pki_rsa # vi rootca_inst.cfg
注意除非明确指定,否则系统证书别名将自动命名为
pki_instance_name
的值。为了避免共享 HSM 上的证书别名冲突,请为每个实例创建使用不同的实例名称。以下安装文件中指定的值是示例。除了更改 HSM 密码外,还要相应地编辑值,如 ports, directory, nicknames, domains…
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [DEFAULT] pki_instance_name=rhcs10-RSA-RootCA pki_https_port=8443 pki_http_port=8080 # Crypto Token pki_hsm_enable=True pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so pki_hsm_modulename=nfast pki_token_name=NHSM-CONN-XC pki_token_password=<YourHSMpassword> pki_audit_signing_token=NHSM-CONN-XC pki_audit_signing_key_algorithm=SHA256withRSA pki_audit_signing_key_size=2048 pki_audit_signing_key_type=rsa pki_audit_signing_signing_algorithm=SHA256withRSA pki_subsystem_token=NHSM-CONN-XC pki_subsystem_key_algorithm=SHA256withRSA pki_subsystem_signing_algorithm=SHA256withRSA pki_subsystem_key_size=2048 pki_subsystem_key_type=rsa pki_sslserver_token=NHSM-CONN-XC pki_sslserver_key_algorithm=SHA256withRSA pki_sslserver_signing_algorithm=SHA256withRSA pki_sslserver_key_size=2048 pki_sslserver_key_type=rsa # Bootstrap Admin pki_admin_password=SECret.123 pki_admin_key_type=rsa pki_admin_key_size=2048 pki_admin_key_algorithm=SHA256withRSA # Bootstrap Admin client dir # by default, if pki_client_dir, pki_client_database_dir, # and pki_client_admin_cert_p12 are not specified, items will be placed # under some default directories in /root/.dogtag pki_client_admin_cert_p12=/opt/pki_rsa/rhcs10-RSA-RootCA/ca_admin_cert.p12 pki_client_database_dir=/opt/pki_rsa/rhcs10-RSA-RootCA/certs_db pki_client_database_password=SECret.123 pki_client_dir=/opt/pki_rsa/rhcs10-RSA-RootCA pki_client_pkcs12_password=SECret.123 # Internal LDAP pki_ds_bind_dn=cn=Directory Manager pki_ds_ldap_port=389 pki_ds_ldaps_port=636 pki_ds_password=SECret.123 pki_ds_remove_data=True pki_ds_secure_connection=True pki_ds_secure_connection_ca_pem_file=/opt/pki_rsa/temp-dirsrv-rootca-cert.pem pki_ds_secure_connection_ca_nickname=DS temp CA certificate # Security Domain pki_security_domain_hostname=rhcs10.example.com pki_security_domain_name=Example-rhcs10-RSA-RootCA pki_security_domain_password=SECret.123 [Tomcat] pki_ajp_port=8009 pki_tomcat_server_port=8005 [CA] pki_import_admin_cert=False pki_admin_nickname=PKI Bootstrap Administrator for RSA-RootCA pki_admin_name=caadmin pki_admin_uid=caadmin pki_admin_email=caadmin@example.com pki_ca_signing_token=NHSM-CONN-XC pki_ca_signing_key_algorithm=SHA256withRSA pki_ca_signing_key_size=3072 pki_ca_signing_key_type=rsa pki_ca_signing_nickname=CA Signing Cert - %(pki_instance_name)s pki_ca_signing_signing_algorithm=SHA256withRSA pki_ocsp_signing_token=NHSM-CONN-XC pki_ocsp_signing_key_algorithm=SHA256withRSA pki_ocsp_signing_key_size=3072 pki_ocsp_signing_key_type=rsa pki_ocsp_signing_signing_algorithm=SHA256withRSA pki_ds_hostname=rhds11.example.com pki_ds_base_dn=dc=RSA-RootCA pki_ds_database=CC-RSA-RootCA-LDAP pki_share_db=False
[DEFAULT] pki_instance_name=rhcs10-RSA-RootCA pki_https_port=8443 pki_http_port=8080 # Crypto Token pki_hsm_enable=True pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so pki_hsm_modulename=nfast pki_token_name=NHSM-CONN-XC pki_token_password=<YourHSMpassword> pki_audit_signing_token=NHSM-CONN-XC pki_audit_signing_key_algorithm=SHA256withRSA pki_audit_signing_key_size=2048 pki_audit_signing_key_type=rsa pki_audit_signing_signing_algorithm=SHA256withRSA pki_subsystem_token=NHSM-CONN-XC pki_subsystem_key_algorithm=SHA256withRSA pki_subsystem_signing_algorithm=SHA256withRSA pki_subsystem_key_size=2048 pki_subsystem_key_type=rsa pki_sslserver_token=NHSM-CONN-XC pki_sslserver_key_algorithm=SHA256withRSA pki_sslserver_signing_algorithm=SHA256withRSA pki_sslserver_key_size=2048 pki_sslserver_key_type=rsa # Bootstrap Admin pki_admin_password=SECret.123 pki_admin_key_type=rsa pki_admin_key_size=2048 pki_admin_key_algorithm=SHA256withRSA # Bootstrap Admin client dir # by default, if pki_client_dir, pki_client_database_dir, # and pki_client_admin_cert_p12 are not specified, items will be placed # under some default directories in /root/.dogtag pki_client_admin_cert_p12=/opt/pki_rsa/rhcs10-RSA-RootCA/ca_admin_cert.p12 pki_client_database_dir=/opt/pki_rsa/rhcs10-RSA-RootCA/certs_db pki_client_database_password=SECret.123 pki_client_dir=/opt/pki_rsa/rhcs10-RSA-RootCA pki_client_pkcs12_password=SECret.123 # Internal LDAP pki_ds_bind_dn=cn=Directory Manager pki_ds_ldap_port=389 pki_ds_ldaps_port=636 pki_ds_password=SECret.123 pki_ds_remove_data=True pki_ds_secure_connection=True pki_ds_secure_connection_ca_pem_file=/opt/pki_rsa/temp-dirsrv-rootca-cert.pem pki_ds_secure_connection_ca_nickname=DS temp CA certificate # Security Domain pki_security_domain_hostname=rhcs10.example.com pki_security_domain_name=Example-rhcs10-RSA-RootCA pki_security_domain_password=SECret.123 [Tomcat] pki_ajp_port=8009 pki_tomcat_server_port=8005 [CA] pki_import_admin_cert=False pki_admin_nickname=PKI Bootstrap Administrator for RSA-RootCA pki_admin_name=caadmin pki_admin_uid=caadmin pki_admin_email=caadmin@example.com pki_ca_signing_token=NHSM-CONN-XC pki_ca_signing_key_algorithm=SHA256withRSA pki_ca_signing_key_size=3072 pki_ca_signing_key_type=rsa pki_ca_signing_nickname=CA Signing Cert - %(pki_instance_name)s pki_ca_signing_signing_algorithm=SHA256withRSA pki_ocsp_signing_token=NHSM-CONN-XC pki_ocsp_signing_key_algorithm=SHA256withRSA pki_ocsp_signing_key_size=3072 pki_ocsp_signing_key_type=rsa pki_ocsp_signing_signing_algorithm=SHA256withRSA pki_ds_hostname=rhds11.example.com pki_ds_base_dn=dc=RSA-RootCA pki_ds_database=CC-RSA-RootCA-LDAP pki_share_db=False
运行 pkispawn 工具来安装 RHCS CA 实例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pkispawn -s CA -f rootca_inst.cfg --debug
pkispawn -s CA -f rootca_inst.cfg --debug
验证步骤
显示已安装 CA 的状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server status rhcs10-RSA-RootCA
pki-server status rhcs10-RSA-RootCA
运行以下命令,验证 CA 的健全性。它应该显示证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -p 8443 -h rhcs10.example.com ca-cert-find
pki -p 8443 -h rhcs10.example.com ca-cert-find
注意当第一次使用 pki 命令连接到 RootCA 时,将显示 CA 签名证书的不受信任的签发者警告,如下所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow WARNING: UNTRUSTED ISSUER encountered on 'CN=rhcs10.example.com,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' indicates a non-trusted CA cert 'CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' Trust this certificate (y/N)?
WARNING: UNTRUSTED ISSUER encountered on 'CN=rhcs10.example.com,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' indicates a non-trusted CA cert 'CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' Trust this certificate (y/N)?
如果主题 DN 与主机名匹配,请选择
y
以信任 CA 签名证书。警告不会再次显示。
7.3.2. 使用 pkispawn
双步骤方法安装 root CA
使用两步方法配置 RootCA 实例需要创建配置文件并运行 pkispawn
工具两次。
在本例中,根CA 安装在 rhcs10.example.com 上。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
- 您已运行第 6.3.2 节 中的步骤,"设置 DS 实例" [NEEDS UPDATING].在我们的示例中,CC-RSA-RootCA-LDAP 是 RootCA 的内部数据库。
7.3.2.1. RootCA 安装的第一步
在所选位置(例如
/root/pki_rsa
)创建一个 CA 安装文件,该文件将托管 RHCS 实例 rhcs10.example.com。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd /root/pki_rsa vi rootca_inst.cfg
cd /root/pki_rsa vi rootca_inst.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [DEFAULT] pki_instance_name=rhcs10-RSA-RootCA pki_https_port=8443 pki_http_port=8080 # Crypto Token pki_hsm_enable=True pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so pki_hsm_modulename=nfast pki_token_name=NHSM-CONN-XC pki_token_password=<YourHSMpassword> pki_audit_signing_token=NHSM-CONN-XC pki_audit_signing_key_algorithm=SHA256withRSA pki_audit_signing_key_size=2048 pki_audit_signing_key_type=rsa pki_audit_signing_signing_algorithm=SHA256withRSA pki_subsystem_token=NHSM-CONN-XC pki_subsystem_key_algorithm=SHA256withRSA pki_subsystem_signing_algorithm=SHA256withRSA pki_subsystem_key_size=2048 pki_subsystem_key_type=rsa pki_sslserver_token=NHSM-CONN-XC pki_sslserver_key_algorithm=SHA256withRSA pki_sslserver_signing_algorithm=SHA256withRSA pki_sslserver_key_size=2048 pki_sslserver_key_type=rsa # Bootstrap Admin pki_admin_password=SECret.123 pki_admin_key_type=rsa pki_admin_key_size=2048 pki_admin_key_algorithm=SHA256withRSA # Bootstrap Admin client dir # by default, if pki_client_dir, pki_client_database_dir, # and pki_client_admin_cert_p12 are not specified, items will be placed # under some default directories in /root/.dogtag pki_client_dir=/opt/pki_rsa/rhcs10-RSA-RootCA pki_client_admin_cert_p12=/opt/pki_rsa/rhcs10-RSA-RootCA/ca_admin_cert.p12 pki_client_database_dir=/opt/pki_rsa/rhcs10-RSA-RootCA/certs_db pki_client_database_password=SECret.123 pki_client_pkcs12_password=SECret.123 # Internal LDAP pki_ds_bind_dn=cn=Directory Manager pki_ds_ldap_port=389 pki_ds_ldaps_port=636 pki_ds_password=SECret.123 pki_ds_remove_data=True pki_ds_secure_connection=True pki_ds_secure_connection_ca_pem_file=/opt/pki_rsa/temp-dirsrv-rootca-cert.pem pki_ds_secure_connection_ca_nickname=DS temp CA certificate # Security Domain pki_security_domain_hostname=rhcs10.example.com pki_security_domain_name=Example-rhcs10-RSA-RootCA pki_security_domain_password=SECret.123 [Tomcat] pki_ajp_port=8009 pki_tomcat_server_port=8005 [CA] pki_import_admin_cert=False pki_admin_nickname=PKI Bootstrap Administrator for RSA-RootCA pki_admin_name=caadmin pki_admin_uid=caadmin pki_admin_email=caadmin@example.com pki_ca_signing_token=NHSM-CONN-XC pki_ca_signing_key_algorithm=SHA256withRSA pki_ca_signing_key_size=3072 pki_ca_signing_key_type=rsa pki_ca_signing_nickname=CA Signing Cert - %(pki_instance_name)s pki_ca_signing_signing_algorithm=SHA256withRSA pki_ocsp_signing_token=NHSM-CONN-XC pki_ocsp_signing_key_algorithm=SHA256withRSA pki_ocsp_signing_key_size=3072 pki_ocsp_signing_key_type=rsa pki_ocsp_signing_signing_algorithm=SHA256withRSA pki_ds_hostname=rhds11.example.com pki_ds_base_dn=dc=RSA-RootCA pki_ds_database=CC-RSA-RootCA-LDAP pki_share_db=False
[DEFAULT] pki_instance_name=rhcs10-RSA-RootCA pki_https_port=8443 pki_http_port=8080 # Crypto Token pki_hsm_enable=True pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so pki_hsm_modulename=nfast pki_token_name=NHSM-CONN-XC pki_token_password=<YourHSMpassword> pki_audit_signing_token=NHSM-CONN-XC pki_audit_signing_key_algorithm=SHA256withRSA pki_audit_signing_key_size=2048 pki_audit_signing_key_type=rsa pki_audit_signing_signing_algorithm=SHA256withRSA pki_subsystem_token=NHSM-CONN-XC pki_subsystem_key_algorithm=SHA256withRSA pki_subsystem_signing_algorithm=SHA256withRSA pki_subsystem_key_size=2048 pki_subsystem_key_type=rsa pki_sslserver_token=NHSM-CONN-XC pki_sslserver_key_algorithm=SHA256withRSA pki_sslserver_signing_algorithm=SHA256withRSA pki_sslserver_key_size=2048 pki_sslserver_key_type=rsa # Bootstrap Admin pki_admin_password=SECret.123 pki_admin_key_type=rsa pki_admin_key_size=2048 pki_admin_key_algorithm=SHA256withRSA # Bootstrap Admin client dir # by default, if pki_client_dir, pki_client_database_dir, # and pki_client_admin_cert_p12 are not specified, items will be placed # under some default directories in /root/.dogtag pki_client_dir=/opt/pki_rsa/rhcs10-RSA-RootCA pki_client_admin_cert_p12=/opt/pki_rsa/rhcs10-RSA-RootCA/ca_admin_cert.p12 pki_client_database_dir=/opt/pki_rsa/rhcs10-RSA-RootCA/certs_db pki_client_database_password=SECret.123 pki_client_pkcs12_password=SECret.123 # Internal LDAP pki_ds_bind_dn=cn=Directory Manager pki_ds_ldap_port=389 pki_ds_ldaps_port=636 pki_ds_password=SECret.123 pki_ds_remove_data=True pki_ds_secure_connection=True pki_ds_secure_connection_ca_pem_file=/opt/pki_rsa/temp-dirsrv-rootca-cert.pem pki_ds_secure_connection_ca_nickname=DS temp CA certificate # Security Domain pki_security_domain_hostname=rhcs10.example.com pki_security_domain_name=Example-rhcs10-RSA-RootCA pki_security_domain_password=SECret.123 [Tomcat] pki_ajp_port=8009 pki_tomcat_server_port=8005 [CA] pki_import_admin_cert=False pki_admin_nickname=PKI Bootstrap Administrator for RSA-RootCA pki_admin_name=caadmin pki_admin_uid=caadmin pki_admin_email=caadmin@example.com pki_ca_signing_token=NHSM-CONN-XC pki_ca_signing_key_algorithm=SHA256withRSA pki_ca_signing_key_size=3072 pki_ca_signing_key_type=rsa pki_ca_signing_nickname=CA Signing Cert - %(pki_instance_name)s pki_ca_signing_signing_algorithm=SHA256withRSA pki_ocsp_signing_token=NHSM-CONN-XC pki_ocsp_signing_key_algorithm=SHA256withRSA pki_ocsp_signing_key_size=3072 pki_ocsp_signing_key_type=rsa pki_ocsp_signing_signing_algorithm=SHA256withRSA pki_ds_hostname=rhds11.example.com pki_ds_base_dn=dc=RSA-RootCA pki_ds_database=CC-RSA-RootCA-LDAP pki_share_db=False
注意除非明确指定,否则系统证书别名将自动命名为
pki_instance_name
的值。为了避免共享 HSM 上的证书别名冲突,请为每个实例创建使用不同的实例名称。但是,在两步安装中,两个文件的pki_instance_name
值应该匹配。以下值只是示例。第一次运行
pkispawn
工具来安装 RHCS CA 实例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow pkispawn -s CA -f rootca_inst.cfg --skip-configuration --debug
pkispawn -s CA -f rootca_inst.cfg --skip-configuration --debug
7.3.2.2. RootCA 配置的第二步
如 第 7.2.2 节 “安装方法(单步或两步)” 所述,第二步安装方法中有两个子步骤。
自定义
在这个子步骤中,您可以自定义某些内容,如系统证书的证书配置文件。
为 CA 签名证书设置 Subject Key Identifier 扩展消息摘要算法:
打开此 CA 的签名证书的注册配置集:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi /var/lib/pki/rhcs10-RSA-RootCA/ca/conf/caCert.profile
# vi /var/lib/pki/rhcs10-RSA-RootCA/ca/conf/caCert.profile
添加以下参数:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 7.default.params.messageDigest=SHA-256
7.default.params.messageDigest=SHA-256
- 保存该文件。
同样,对于此 CA 将在以后发布的 CA 签名证书执行相同的操作:
为 CA 签名证书打开注册配置集:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caInstallCACert.cfg vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCcaCert.cfg
# vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caInstallCACert.cfg # vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCcaCert.cfg
添加以下参数:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow policyset.caCertSet.8.default.params.messageDigest=SHA-256
policyset.caCertSet.8.default.params.messageDigest=SHA-256
- 保存该文件。
也可以在此处进行其他自定义更改。例如,如果要扩展此子系统审计签名证书的有效性周期:
打开对应的配置文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caInternalAuthAuditSigningCert.cfg
# vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caInternalAuthAuditSigningCert.cfg
将以下范围参数改为所需的值:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow policyset.auditSigningCertSet.2.constraint.params.range=720 policyset.auditSigningCertSet.2.default.params.range=720
policyset.auditSigningCertSet.2.constraint.params.range=720 policyset.auditSigningCertSet.2.default.params.range=720
-
保存该文件。在下一部分中完成
pkispawn
的第二步骤后,您应该预期此子系统的审计签名证书的有效性,以匹配您更改的值。
运行 pkispawn
the second time (Configuration)
pkispawn
的第二步涉及以不同方式针对同一文件运行工具,从而配置 RHCS CA 实例。
运行
pkispawn
工具来配置 CA:Copy to Clipboard Copied! Toggle word wrap Toggle overflow pkispawn -s CA -f rootca_inst.cfg --skip-installation --debug
# pkispawn -s CA -f rootca_inst.cfg --skip-installation --debug
验证步骤
显示已安装 CA 的状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server status rhcs10-RSA-RootCA
# pki-server status rhcs10-RSA-RootCA
请注意 Unsecure EE、Secure EE、Agent、Admin 和 pkiconsole URL。
运行以下命令,验证 CA 的健全性。它应该显示证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -p 8443 -h rhcs10.example.com ca-cert-find
# pki -p 8443 -h rhcs10.example.com ca-cert-find
注意当第一次使用 pki 命令连接到 RootCA 时,将显示 CA 签名证书的不受信任的签发者警告,如下所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow WARNING: UNTRUSTED ISSUER encountered on 'CN=rhcs10.example.com,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' indicates a non-trusted CA cert 'CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' Trust this certificate (y/N)?
WARNING: UNTRUSTED ISSUER encountered on 'CN=rhcs10.example.com,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' indicates a non-trusted CA cert 'CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' Trust this certificate (y/N)?
如果主题 DN 与主机名匹配,请选择
y
以信任 CA 签名证书。警告不会再次显示。