6.2. 吊销证书


6.2.1. 执行 CMC 吊销

与 CMS (CMC)注册上的证书管理类似,CMC 撤销可让用户设置撤销客户端,并使用代理证书或具有匹配 subjectDN 属性的用户证书签名撤销请求。然后,用户可以向证书管理器发送签名请求。

另外,CMC 撤销也可以使用 Shared Secret Token 机制进行身份验证。详情请查看 将 CMC Shared Secret 添加到证书撤销的证书

无论用户或代理是否为请求签名,还是使用 Shared Secret Token,证书管理器都会在收到有效撤销请求时自动撤销证书。

证书系统为 CMC 吊销请求提供以下工具:

重要

红帽建议使用 CMCRequest 程序来生成 CMC 撤销请求,因为它提供了比 CMCRevoke 更多的选项。

6.2.1.1. 使用 CMCRequest吊销证书

使用 CMCRequest 撤销证书:

  1. 为 CMC 撤销请求创建配置文件,如 /home/user_name/cmc-request.cfg,其内容如下:

    #numRequests: Total number of PKCS10 requests or CRMF requests.
    numRequests=1
    
    #output: full path for the CMC request in binary format
    output=/home/user_name/cmc.revoke.userSigned.req
    
    #tokenname: name of token where user signing cert can be found
    #(default is internal)
    tokenname=internal
    
    #nickname: nickname for user signing certificate which will be used
    #to sign the CMC full request.
    nickname=signer_user_certificate
    
    #dbdir: directory for cert9.db, key4.db and pkcs11.txt
    dbdir=/home/user_name/.dogtag/nssdb/
    
    #password: password for cert9.db which stores the user signing
    #certificate and keys
    password=myPass
    
    #format: request format, either pkcs10 or crmf.
    format=pkcs10
    
    ## revocation parameters
    revRequest.enable=true
    revRequest.serial=45
    revRequest.reason=unspecified
    revRequest.comment=user test revocation
    revRequest.issuer=issuer
    revRequest.sharedSecret=shared_secret
    Copy to Clipboard Toggle word wrap
  2. 创建 CMC 请求:

    # CMCRequest /home/user_name/cmc-request.cfg
    Copy to Clipboard Toggle word wrap

    如果命令成功,CMCRequest 工具会将 CMC 请求存储在请求配置文件的 output 参数中指定的文件中。

  3. 创建配置文件,如 /home/user_name/cmc-submit.cfg,以便稍后的步骤将 CMC 重新vocation 请求提交到 CA。在创建的文件中添加以下内容:

    #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=/home/user_name/cmc.revoke.userSigned.req
    
    #output: full path for the response in binary format
    output=/home/user_name/cmc.revoke.userSigned.resp
    
    #tokenname: name of token where SSL client authentication certificate
    #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/user_name/.dogtag/nssdb/
    
    #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=signer_user_certificate
    Copy to Clipboard Toggle word wrap
    重要

    如果 CMC 吊销请求已签名,请将 secureclientmode 参数设置为 true,并填写 nickname 参数。

  4. 根据请求签名,需要相应地设置 HttpClient 配置文件中的 servlet 参数:

    • 如果代理签名了请求,请设置:

      • RSA: servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caFullCMCUserCert
      • ECC: servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caECFullCMCUserCert
    • 如果用户对请求进行了签名,请设置:

      • RSA: servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caFullCMCSharedTokenCert
      • ECC: servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caECFullCMCSharedTokenCert
  5. 提交 CMC 请求:

    # HttpClient /home/user_name/cmc-submit.cfg
    Copy to Clipboard Toggle word wrap

有关使用 CMCRequest 撤销证书的详情,请查看 CMCRequest (1) 手册页。

6.2.1.2. 使用 CMCRevoke吊销证书

CMC 吊销实用程序 CMCRevoke 用于通过代理的证书签署撤销请求。这个工具只是传递所需信息 - 证书序列号、签发者名称和吊销原因 - 用于标识要撤销的证书,然后需要信息来标识执行撤销的 CA 代理(certificate nickname 和带有证书的数据库)。

注意

有关启用 CMCRevoke 的更多信息,请参阅 规划、安装和部署指南(Common criteria Edition) 中的 9.6.4 "启用 CMCRevoke for Web 用户界面"部分。

证书被撤销的原因可以是以下任意一种(数字是传递给 CMCRevoke 实用程序的值):

  • 0- unspecified
  • 1- 密钥被入侵
  • 2- CA 密钥被破坏
  • 对员工的 3个关系变化
  • 4- 证书已被取代
  • 5到识别操作
  • 6- 证书处于保存状态
测试 CMCRevoke
  1. 为现有证书创建 CMC 撤销请求。

    重要
    • 正确的语法在参数及其值之间没有空格。例如,提供序列号为 26 is -s26, not -s 26
    • 如果某些值包含空格,请将这些值用引号括起。例如, -c"test 注释 "。
    # CMCRevoke -d/path/to/AgentCertDb -pPasswordToDb -nNickname -iIssuerName -sDecimalSerialNumber -mReasonToRevoke -cComment*
    Copy to Clipboard Toggle word wrap

    例如,如果包含代理证书的目录是 ~jsmith/.mozilla/firefox/,证书的 nickname 为 AgentCert,且证书的序列号为 22,则命令如下所示:

    # CMCRevoke -d"~jsmith/.mozilla/firefox/" -pPass -n"AgentCert" -i"cn=agentAuthMgr" -s22 -m0 -c"test comment"
    Copy to Clipboard Toggle word wrap
  2. 打开最终用户页面。

    https://server.example.com:8443/ca/ee/ca
    Copy to Clipboard Toggle word wrap
  3. 选择 Revocation 选项卡。
  4. 选择菜单中的 CMC Revoke 链接。
  5. CMCRevoke 的输出粘贴到文本区域中。
  6. 从粘贴内容中删除 -----BEGIN NEW CERTIFICATE REQUEST----- 和--- END NEW CERTIFICATE REQUEST-----
  7. Submit
  8. 返回的页面应该确认已撤销了正确的证书。

6.2.2. 从 Web UI 执行撤销为代理

证书管理器代理可以使用代理服务页面来查找证书系统发布的特定证书,或者检索与指定条件匹配的证书列表。代理检查或撤销检索的证书。证书管理器代理也可以管理证书撤销列表(CRL)。

6.2.2.1. 列出证书

可以列出一系列序列号中的证书。范围内的所有证书均可显示,或者如果代理选择,则仅显示当前有效的证书。

要查找特定证书或按序列号列出证书:

  1. 打开 Certificate Manager 代理服务页面。
  2. 单击 List Certificates

    • 要查找具有特定序列号的证书,请在 List Certificates 表单的上限和下限字段中以十进制或十六进制形式输入序列号。使用 0x 表示十六进制数字的开头,例如 0x00000006。序列号以十六进制形式显示在 Search ResultsDetails 页面中。
    • 要在一系列序列号中查找所有证书,以十进制或十六进制形式输入序列号范围的上限和较低限制。

    将下限或上限字段留空时,会显示具有指定数字的证书,以及所有证书按顺序之前或之后的所有证书。

  3. 要将返回的列表限制为有效的证书,请选中标有过滤方法的复选框。可以包括吊销的证书、包含过期证书或证书无效,或者仅显示有效证书。
  4. 输入与结果页面中应返回的条件匹配的证书的最大数量。

    输入任何数字时,会显示与条件匹配的第一个证书。

  5. Find

    证书系统显示与搜索条件匹配的证书列表。从列表中选择一个证书,以更详细地检查它,或对其执行各种操作。如需更多信息,请参阅 第 6.2.2.3 节 “检查证书详情”

6.2.2.3. 检查证书详情

  1. 在代理服务页面上,单击 List CertificatesSearch for Certificates,指定搜索条件,然后单击 Find 以显示证书列表。
  2. 搜索结果 表单中,选择一个要检查的证书。

    如果没有显示所需证书,请滚动到列表的底部,指定要返回的额外证书数量,然后点 Find。系统显示与原始搜索条件匹配的下一个证书,最高为该数字。

  3. 选择证书后,单击其条目左侧的 Details 按钮。
  4. 证书 页面显示所选证书的详细内容,以及在服务器或 Web 浏览器中安装证书的说明。

    图 6.1. 证书详情

  5. 证书以 base-64 编码形式显示在 Certificate 页面的底部,在服务器中安装此证书的 标题下。

6.2.2.4. 吊销证书

只有证书管理器代理可以撤销自己的证书。如果出现以下情况之一,则必须撤销证书:

  • 证书的所有者状态已更改,并且不再有权使用该证书。
  • 证书所有者的私钥已被泄露。

    These two reasons are not the only ones why a certificate would need revoked; there are six reasons available for revoking a certificate.
    Copy to Clipboard Toggle word wrap

要撤销一个或多个证书,请使用 Revoke Certificates 按钮搜索要撤销的证书。虽然通过 搜索证书 表单与 搜索结果类似,但此搜索 返回的搜索结果表单提供了撤销一个或多个返回的证书的选项。

6.2.2.4.1. 吊销证书
  1. 打开 Certificate Manager 代理服务页面。
  2. 单击 Revoke Certificates

    注意

    出现的搜索表单与搜索 证书 表单具有相同的搜索条件部分。

  3. 通过选择部分的复选框并填写所需信息来指定搜索条件。
  4. 滚动到表单的底部,并设置要显示的匹配证书的数量。
  5. Find
  6. 搜索返回匹配证书列表。可以撤销列表中的一个或多个证书。

    TIP

    如果搜索条件非常具体,并且返回的所有证书都将被撤销,则点击页面底部的 Revoke ALL # Certificates 按钮。按钮中显示的数字是搜索返回的证书总数。这通常比当前页面中显示的证书数量大。

    验证是否应当撤销搜索返回的所有证书,而不仅限于 当前页面中显示的证书。

  7. 单击要撤销的证书旁边的 Revoke 按钮。

    注意

    无论是撤销单个证书还是证书列表,都特别注意选择了正确的证书,或者列表中只包含应撤销的证书。确认吊销操作后,无法撤销它。

  8. 选择无效日期。无效日期是已知或怀疑用户的私钥被破坏或者证书无效的日期。组下拉列表允许代理选择正确的无效日期。

  9. 选择吊销的原因。

    • 密钥被破坏
    • CA 密钥被破坏
    • 关系更改了
    • 证书被取代
    • Cessation of operation
    • 证书处于持有状态
  10. 输入任何其他评论。注释包含在撤销请求中。

提交吊销请求时,它会被自动批准,证书将被撤销。通过列出状态为 Completed 的请求来查看撤销请求。

6.2.2.4.2. 关闭证书

当证书无法访问时,可能存在实例,因此应被视为撤销,但可以恢复该证书。例如,用户可能将个人电子邮件证书存储在闪存驱动器上,而他会意外离开家。证书不会被破坏,但应该被临时暂停。

通过将其放在保存时(撤销证书时提供的一个选项之一)可以临时撤销该证书,如 第 6.2 节 “吊销证书” 中)。稍后,比如忘记的闪存驱动器被提取 - 该证书可以关闭并再次激活。

  1. 在保存证书时搜索,如 第 6.2.2.2 节 “搜索证书(advanced)” 所示。滚动到 Revocation Information 部分,并设置 证书是作为搜索条件的 撤销原因。

  2. 在结果列表中,单击证书的 Off Hold 按钮。

6.2.2.5. 管理证书撤销列表

吊销证书通知其他用户已不再有效。此通知是通过发布撤销 的证书列表(称为证书撤销列表 (CRL))到 LDAP 目录或平面文件来完成。此列表是公开的,并确保撤销的证书不会被滥用。

6.2.2.5.1. 查看或检查 CRL

可能需要查看或检查 CRL,例如先使用最新的 CRL 更新目录。查看或显示 CRL:

  1. 进入 Certificate Manager 代理服务页面。
  2. Display Certificate Revocation List 以显示查看 CRL 的表单。
  3. 选择要查看的 CRL。如果管理员创建了多个问题点,则会在 Issuing point 下拉列表中列出它们。否则,仅显示 master CRL。
  4. Display Type 菜单中选择一个选项,选择如何显示 CRL。这个菜单中的选择如下:

    • 缓存的 CRL。从缓存中查看 CRL,而不是从 CRL 本身查看。这个选项显示的结果比查看整个 CRL 快。
    • 整个 CRL。检索并显示整个 CRL。
    • CRL 标头。只检索并显示 CRL 标头。
    • 基本 64 编码.检索并显示以 base-64 编码格式的 CRL。
    • Delta CRL.检索并显示 delta CRL,这是 CRL 的子集,自最后一个 CRL 发布以来只显示新的撤销。只有在启用了 delta CRL 生成时,这个选项才可用。
  5. 要检查所选的 CRL,请点 Display

    CRL 会出现在浏览器窗口中。这允许代理检查特定证书(按其序列号)是否出现在列表中,并记录最近一次更新后撤销的证书总数、上次更新后获取的证书总数以及自上次更新以来过期的证书总数。

6.2.2.5.2. 更新 CRL

如果启用了自动 CRL 生成调度,则可以自动更新 CRL,并且调度可以在设定时间调度或每当有证书撤销时生成 CRL。

同样,如果启用了 CRL 发布,也可以自动发布 CRL。

在某些情况下,可能需要手动更新 CRL,例如系统关闭或删除过期的证书后更新列表,以减少文件大小。(过期的证书不需要包含在 CRL 中,因为它们已经因为过期日期而无效。)只有证书管理器代理才能手动更新 CRL。

手动更新 CRL:

  1. 打开 Certificate Manager 代理服务页面。
  2. 单击 Update Revocation List,以显示更新 CRL 的表单。

    图 6.2. 更新证书撤销列表

  3. 选择将更新 CRL 的 CRL 发行点。可以为单个 CA 配置多个问题点。
  4. 选择用于为新的 CRL 签名的算法。在选择算法前,请确保任何需要读取或查看此 CRL 支持的系统或网络应用程序。

    • 带有 RSA 的 SHA-256。
    • 带有 RSA 的 SHA-384。
    • 带有 RSA 的 SHA-512。

      注意

      不再支持 SHA1。

    在选择算法前,请确保证书系统启用了该算法。证书系统管理员将具有该信息。

  5. Update 使用最新的证书撤销信息更新 CRL。

撤销证书会在其过期日期前使证书无效。如果证书丢失、被破坏或不再需要,这可能是必需的。

6.2.3.1. 撤销您的用户证书

  1. Revocation 选项卡。
  2. User Certificate 链接。
  3. 选择吊销证书的原因,然后单击 Submit

  4. 从列表中选择要撤销的证书。

6.2.3.2. 检查证书是否已撤销

  1. Retrieval 选项卡。
  2. 单击 Import Certificate Revocation List 链接。
  3. 通过检查 以下证书是否包含在 CRL 缓存中 选择单选按钮,或者 检查 CRL 是否列出以下证书,并输入证书的序列号。

  4. 单击 Submit 按钮。

    返回了一个消息,表示证书不在任何 CRL 中列出,或者提供包含证书的 CRL 信息。

6.2.3.3. 下载并导入 CRL

证书吊销列表(CRL)可以在 web 客户端、应用程序或机器中下载并安装。也可以查看查看哪些证书已被撤销。

  1. Retrieval 选项卡。
  2. 单击 Import Certificate Revocation List 链接。
  3. 选择单选按钮来查看、下载或导入 CRL。

    • 要将 CRL 导入到浏览器中或下载并保存它,请选择相应的单选按钮。有两个选项:下载/导入完整的 CRL 或 delta CRL。delta CRL 仅导入/下载自 CRL上次生成后撤销的证书列表。
    • 要查看 CRL,请选择 显示 CRL 信息 并选择要查看的 CRL 子集(称为 发出点)。这将显示 CRL 信息,包括其中包含的证书数量。

  4. 单击 Submit 按钮。
  5. 保存文件或批准导入操作。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat