11.3. 为 CA、OCSP、KRA 或 TKS 管理用户和组


用户可以执行的操作的许多操作都由他们所属的组指定;例如,CA 的代理管理证书和密钥,而管理员则管理 CA 服务器配置。

四个子系统 - CA、OCSP、KRA 和 TKS - 使用 Java 管理控制台管理组和用户。TPS 具有基于 Web 的管理服务,用户和组通过其 Web 服务页面进行配置。

11.3.1. 管理组

11.3.1.1. 创建新组

  1. 登录到管理控制台。

    # pkiconsole -d nssdb -n 'optional client cert nickname' https://server.example.com:8443/subsystem_type
    Copy to Clipboard Toggle word wrap
    注意

    pkiconsole 已被弃用,并将在以后的主发行版本中被新的基于浏览器的 UI 替代。虽然 pkiconsole 在发布替代 UI 之前继续可用,但我们鼓励在此鼓励使用命令行与 pkiconsole 等效,因为 pki CLI 将继续支持并在将来有新的基于浏览器的 UI 时受到改进。

  2. 从左侧的导航菜单中选择 Users and Groups
  3. 选择 Groups 选项卡。
  4. 单击 编辑,然后填写组信息。

    只能添加内部数据库中已存在的用户。

  5. 编辑 ACL 以授予组特权。请参阅 第 11.4.3.1 节 “编辑 ACL” 了解更多信息。如果没有将 ACI 添加到组的 ACL 中,则组对证书系统的任何部分都没有访问权限。

11.3.1.2. 更改组中的成员

可以从所有组添加或删除成员。管理员的组必须至少有一个用户条目。

  1. 登录到管理控制台。
  2. 从左侧的导航树中选择" 用户和组 "。
  3. Groups 选项卡。
  4. 从名称列表中选择组,然后单击 Edit
  5. 进行适当的更改。

    • 要更改组描述,请在 Group description 字段中键入新描述。
    • 若要从组中删除用户,请选择用户,然后单击 删除
    • 要添加用户,请单击 添加用户。从对话框中选择要添加的用户,然后单击确定

11.3.2. 管理用户(管理员、代理和审核员)

每个子系统的用户单独维护。只是因为一个子系统中的管理员并不意味着个人具有其他子系统的任何权利(甚至用户条目)。用户可以配置,并与其用户证书(被信任为代理、管理员或子系统审核员)进行配置。

11.3.2.1. 创建角色用户

安装证书系统后,只有设置中创建的 bootstrap 用户存在。要创建其他角色用户,您可以使用命令行或控制台。在本小节中,假设您已创建了 CA admin 用户(例如 )jgenie 和 CA 代理用户(如 jsmith),它遵循 7.12 "Create PKI role users" in planning , Installation and Deployment Guide (Common criteria Edition)

注意

出于安全性和审计的原因,为证书系统用户和管理员创建单独的帐户。

11.3.2.1.1. 注册用户证书

角色用户必须拥有个人证书以进行身份验证。以下流程描述了如何用户注册证书。

  1. 以用户身份,创建一个证书请求,然后发送到 CA 代理:

    • 如果您的证书系统环境中存在密钥恢复授权(KRA):

      # CRMFPopClient -d /home/example-user/certs_db -p password -n "CN=user_name" -q POP_SUCCESS -b kra.transport -w "AES KeyWrap/Wrapped" -v -o ~/user_name.req -oaep
      
      Initializing security database: /home/example-user/certs_db
      archival option enabled
      Loading transport certificate
      Parsing subject DN
      RDN: CN=user_name
      Generating key pair: temporary: false
      Keypair private key id: 2eb823eea69e01f0892345dd7d7603be5b9ad2ec
      Using key wrap algorithm: AES KeyWrap/Wrapped
      Creating certificate request
      Creating signer
      Creating POP
      Creating CRMF request
      Storing CRMF request into /home/example-user/certs_db/user_name.req
      Storing CRMF request key id into /home/example-user/certs_db/user_name.req.keyId
      Copy to Clipboard Toggle word wrap

      此命令会在 ~/user_name.req 文件中以 CRMF 格式存储证书签名请求(CSR)。将 CSR 请求文件发送到 CA 代理。

    • 如果您的证书系统环境中不存在密钥恢复授权(KRA):

      # PKCS10Client -d /home/example-user/certs_db -p password -n "CN=user_name" -o ~/user_name.req
      
      PKCS10Client: Certificate request written into /home/example-user/certs_db/user_name.req
      PKCS10Client: PKCS#10 request key id written into /home/example-user/certs_db/user_name.req.keyId
      "
      Copy to Clipboard Toggle word wrap

      此命令将 CSR 以 pkcs10 格式存储在 ~/user_name.req 文件中。将 CSR 请求文件发送到 CA 代理。

  2. 作为 CA 代理,使用接收的 CSR 文件作为输入创建注册请求:

    1. 使用以下内容创建 ~/cmc.role_crmf.cfg 文件:

      #numRequests: Total number of PKCS10 requests or CRMF requests.
      numRequests=1
      
      #input: full path for the PKCS10 request or CRMF request,
      #the content must be in Base-64 encoded format
      #Multiple files are supported. They must be separated by a space.
      input=~/user_name.req
      
      #output: full path for the CMC request in binary format
      output=~/cmc.role_crmf.req
      
      #tokenname: name of token where agent signing cert can be found (default is internal)
      tokenname=internal
      
      #nickname: nickname for agent certificate which will be used
      #to sign the CMC full request.
      nickname=jsmith - CA Agent for Example.com
      
      #dbdir: directory for cert9.db, key4.db and pkcs11.txt
      dbdir=/home/jsmith/certs_db
      
      #password: password for cert9.db which stores the agent
      #certificate
      password=password
      
      #format: request format, either pkcs10 or crmf
      format=crmf
      Copy to Clipboard Toggle word wrap

      根据您的环境和上一步中使用的 CSR 格式设置参数。

    2. 将之前创建的配置文件传递给 CMCRequest 工具,以创建 CMC 请求:

      # CMCRequest ~/cmc.role_crmf.cfg
      Copy to Clipboard Toggle word wrap
  3. 作为 CA 代理 jsmith,提交 CMC (证书管理 over CMS)请求:

    1. 使用以下内容创建 ~/HttpClient_role_crmf.cfg 文件:

      # #host: host name for the http server
      host=server.example.com
      
      #port: CA port number
      port=8443
      
      #secure: true for secure connection, false for nonsecure connection
      secure=true
      
      #input: full path for the enrollment request, the content must be in binary format
      input=~/cmc.role_crmf.req
      
      #output: full path for the response in binary format
      output=~/cmc.role_crmf.resp
      
      #tokenname: name of token where SSL client authentication cert can be found (default is internal)
      #This parameter will be ignored if secure=false
      tokenname=internal
      
      #dbdir: directory for cert9.db, key4.db and pkcs11.txt
      #This parameter will be ignored if secure=false
      dbdir=/home/jsmith/certs_db
      
      #clientmode: true for client authentication, false for no client authentication
      #This parameter will be ignored if secure=false
      clientmode=true
      
      #password: password for cert9.db
      #This parameter will be ignored if secure=false and clientauth=false
      password=password
      
      #nickname: nickname for client certificate
      #This parameter will be ignored if clientmode=false
      nickname=jsmith - CA Agent for Example.com
      
      #servlet: servlet name
      servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caFullCMCUserCert
      Copy to Clipboard Toggle word wrap

      根据您的环境设置参数。

    2. 将请求提交到 CA:

      # HttpClient ~/HttpClient_role_crmf.cfg
      
      Total number of bytes read = 3776
      after SSLSocket created, thread token is Internal Key Storage Token
      client cert is not null
      handshake happened
      writing to socket
      Total number of bytes read = 2523
      MIIJ1wYJKoZIhvcNAQcCoIIJyDCCCcQCAQMxDzANBglghkgBZQMEAgEFADAxBggr
      ...
      The response in data format is stored in ~/cmc.role_crmf.resp
      Copy to Clipboard Toggle word wrap
    3. 验证结果:

      # CMCResponse -i ~/cmc.role_crmf.resp
      
      Certificates:
          Certificate:
          	Data:
              	Version:  v3
              	Serial Number: 0xF9D290B
              	Signature Algorithm: SHA512withEC - 1.2.840.10045.4.3.4
              	Issuer: CN=CA Signing Certificate,OU=rhcs10-ECC-SubCA,O=Example-rhcs10-ECC-RootCA
              	Validity:
                  	Not Before: Friday, January 26, 2024 12:50:37 AM PST America/Los_Angeles
                  	Not  After: Wednesday, July 24, 2024 12:50:37 AM PDT America/Los_Angeles
              	Subject: CN=user_name
      ...
      Number of controls is 1
      Control #0: CMCStatusInfoV2
         OID: {1 3 6 1 5 5 7 7 25}
         BodyList: 1
         Status: SUCCESS
      Copy to Clipboard Toggle word wrap
    4. 如果颁发成功,请检索新发布的 .crt 证书文件:

      # pki -d /home/jsmith/certs_db -c password -p 8443 -n 'jsmith - CA Agent for Example.com' ca-cert-export 0xF9D290B --output-file ~/user.crt
      Copy to Clipboard Toggle word wrap

      CA 代理 jsmith 然后将证书发送到请求的用户。

  4. 以请求用户身份,将从 CA 代理 jsmith 接收的证书导入到自己的 < user home directory> /certs_db/ 数据库中:

    # certutil -d ~/certs_db -A -t "u,u,u" -n "user_name" -i ~/user.crt
    Copy to Clipboard Toggle word wrap
11.3.2.1.2. 使用命令行创建用户

使用命令行创建用户:

  1. 作为 CA 管理员(如 jgenie),添加一个用户帐户。例如,将 user_name 用户添加到 CA 中:

    # pki -d /home/jgenie/certs_db -c password -n caadmin ca-user-add user_name --fullName "Example User"
    
    ----------------------
    Added user "user_name"
    ----------------------
    User ID: user_name
    Full name: Example User
    Copy to Clipboard Toggle word wrap

    此命令使用 CA admin 用户添加新帐户。

  2. (可选)作为 CA 管理员(如 jgenie),将用户添加到组中。例如,要将 user_name 用户添加到 Certificate Manager Agents 组中:

    # pki -d /home/jgenie/certs_db -c password -n "caadmin" ca-user-membership-add user_name "Certificate Manager Agents"
    
    ------------------------------------------------
    Added membership in "Certificate Manager Agents"
    ------------------------------------------------
      Group: Certificate Manager Agents
    Copy to Clipboard Toggle word wrap
  3. 作为 CA 管理员,将证书添加到用户记录中:

    1. 使用其序列号或证书文件将证书添加到证书系统数据库中的用户帐户。例如,对于 user_name 用户:

      # pki -d /home/jgenie/certs_db/ -c password -n jgenie ca-user-cert-add user_name --input ~/user.crt
      Copy to Clipboard Toggle word wrap

      或者

      # pki -d /home/jgenie/certs_db/ -c password -n jgenie ca-user-cert-add user_name --serial 0xF9D290B
      
      ----------------------------------------------------------------------------------------------------------------------
      Added certificate "2;261957899;CN=CA Signing Certificate,OU=rhcs10-ECC-SubCA,O=Example-rhcs10-ECC-RootCA;CN=user_name"
      ----------------------------------------------------------------------------------------------------------------------
        Cert ID: 2;261957899;CN=CA Signing Certificate,OU=rhcs10-ECC-SubCA,O=Example-rhcs10-ECC-RootCA;CN=user_name
        Version: 2
        Serial Number: 0xf9d290b
        Issuer: CN=CA Signing Certificate,OU=rhcs10-ECC-SubCA,O=Example-rhcs10-ECC-RootCA
        Subject: CN=user_name
      Copy to Clipboard Toggle word wrap
    2. 验证证书是否已添加到用户记录中。例如,列出在证书主体中包含 user_name 用户的证书:

      # pki -d /home/jgenie/certs_db/ -c password -n jgenie ca-user-cert-find user_name
      
      -----------------
      1 entries matched
      -----------------
        Cert ID: 2;261957899;CN=CA Signing Certificate,OU=rhcs10-ECC-SubCA,O=Example-rhcs10-ECC-RootCA;CN=user_name
        Version: 2
        Serial Number: 0xf9d290b
        Issuer: CN=CA Signing Certificate,OU=rhcs10-ECC-SubCA,O=Example-rhcs10-ECC-RootCA
        Subject: CN=user_name
      ----------------------------
      Number of entries returned 1
      ----------------------------
      Copy to Clipboard Toggle word wrap
11.3.2.1.3. 使用控制台创建用户

使用 PKI 控制台创建用户:

  1. 登录到管理控制台。

    # pkiconsole -d nssdb -n 'optional client cert nickname' https://server.example.com:8443/subsystem_type
    Copy to Clipboard Toggle word wrap
    注意

    pkiconsole 已被弃用,并将在以后的主发行版本中被新的基于浏览器的 UI 替代。虽然 pkiconsole 在发布替代 UI 之前继续可用,但我们鼓励在此鼓励使用命令行与 pkiconsole 等效,因为 pki CLI 将继续支持并在将来有新的基于浏览器的 UI 时受到改进。

  2. Configuration 选项卡中,选择" 用户和组 "。点Add
  3. Edit User Information 对话框中填写信息。

    大多数信息都是标准用户信息,如用户名、电子邮件地址和密码。此窗口还包含名为 User State 的字段,它可以包含任何字符串,用于添加用户的附加信息;基本上,此字段可以显示是否是活动用户。

  4. 选择用户所属的组。用户的组成员资格决定了用户具有哪些特权。将代理、管理员和审核员分配给适当的子系统组。
  5. 添加用户的证书。

    1. 通过 CA 端到端服务页面请求用户证书。
    2. 如果没有为用户配置文件配置自动注册,则批准证书请求。
    3. user.crt 的内容(从 第 11.3.2.1.1 节 “注册用户证书”)复制到剪贴板。
    4. 选择新用户条目,然后单击 Certificates
    5. 单击 Import,并粘贴 base-64 编码证书。

11.3.2.2. 更改证书系统用户证书

  1. 登录到管理控制台。
  2. 选择 "用户和组 "。
  3. 从用户 ID 列表中选择要编辑的用户,然后单击 Certificates
  4. 单击 Import 以添加新证书。
  5. Import Certificate 窗口中,将新证书粘贴到文本区域中。包含 -----BEGIN CERTIFICATE----------END CERTIFICATE----- 标记行。

11.3.2.3. 续订管理员、代理和审核员用户证书

有两种方法可以续订证书。重新生成证书 获取其原始密钥及其原始配置文件和请求,并使用新的有效期和过期日期重新创建相同的密钥。重新密钥 证书将初始证书请求重新提交到原始配置文件,但生成新的密钥对。管理员可以通过重新密钥来续订管理员证书。

每个子系统都有一个在创建子系统时创建的 bootstrap 用户。用户可以使用一个默认的续订配置文件之一,为此用户请求新证书。

管理用户的证书可以直接在最终用户注册表单中,使用原始证书的序列号。

  1. 续订管理员用户证书。详情请查看 第 5.4 节 “续订证书”
  2. 将更新的用户证书添加到内部 LDAP 数据库中的用户条目。

    1. 打开子系统控制台。

      # pkiconsole -d nssdb -n 'optional client cert nickname' https://server.example.com:admin_port/subsystem_type
      Copy to Clipboard Toggle word wrap
      注意

      pkiconsole 已被弃用,并将在以后的主发行版本中被新的基于浏览器的 UI 替代。虽然 pkiconsole 在发布替代 UI 之前继续可用,但我们鼓励在此鼓励使用命令行与 pkiconsole 等效,因为 pki CLI 将继续支持并在将来有新的基于浏览器的 UI 时受到改进。

    2. 配置 | 用户和组 | 用户 | admin | 证书 | 导入
    3. Configuration 选项卡中,选择" 用户和组 "。
    4. Users 选项卡中,使用更新的证书双击用户条目,然后单击 Certificates
    5. 单击 Import,并粘贴 base-64 编码证书。

这也可以通过使用 ldapmodify 直接将更新的认证添加到内部 LDAP 数据库中的用户条目,方法是替换用户条目中的 userCertificate 属性,如 uid=admin,ou=people,dc=subsystem-base-DN

11.3.2.4. 删除证书系统用户

用户可以从内部数据库中删除。从内部数据库删除用户将从用户所属的所有组中删除该用户。要从特定组中删除该用户,请修改组成员资格。

  • 通过执行以下操作从内部数据库中删除特权用户:

    1. 登录到管理控制台。
    2. 从左侧的导航菜单中选择 Users and Groups
    3. 从用户 ID 列表中选择用户,然后单击 Delete
    4. 提示时确认删除。
  • 另外,您可以以管理员身份在 CLI 中运行以下命令删除系统用户:

    # pki -d /home/jgenie/certs_db -c password -n caadmin ca-user-del user_name
    ------------------------
    Deleted user "user_name"
    ------------------------
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat