X509 CRL 暂停证书和 openssl ca 命令

信息安全 证书 openssl crl
2021-09-02 19:40:52

在 CRL X509 格式中,我们有暂停证书列表的“保留指令代码”。我知道“对于 Internet PKI 强烈反对使用它”,但在我自己的私有 CA 中,我想使用它。

Openssl 有一个ca命令,我可以直接在我的 linux cli 上执行所有“ca”操作。它可以选择-crl_hold instruction将证书“搁置”,但是如何删除该证书的“搁置”状态?我还没有找到任何方法来管理此证书的临时暂停。

任何帮助都会非常有帮助。

3个回答

来自OpenVPN 2 食谱

OpenSSLca命令通过查看 index.txt 文件生成其 CRL。以“R”开头的每一行都添加到 CRL,然后使用 CA 私钥对 CRL 进行加密签名。

要恢复您撤销的证书,您可以编辑您的 CA 数据库

database       = $dir/index.txt        # index file.

1. 更新 中的相关条目$dir/index.txt,替换R=revokedV=valid
2. 重新创建 crl 文件:openssl ca -gencrl ***
3. 剩下的就是流程的自动化(一个脚本?

据我所知,没有办法在 CLI 上的 openssl 中“取消暂停”证书。以下引用可能会给您更多指导:

Martin Abala,OpenSSL 邮件列表,2008-10-13,Re: Put certificate on hold :

阅读 X.509 建议(可从 ITU-T 网站免费下载)告诉我们,可以通过 2 种方式“取消持有”证书:
- 要么真正撤销它,通过更改原因代码同时保持日期
-或者如您所料,将其从 CRL 中完全删除。

同样,我不知道 OpenSSL 有任何 CLI 命令,因此您的选择可能是:

  1. 颁发新证书或
  2. 在撤销之前恢复 CA DB 的副本并发布新的 CRL。

    如果您有其他已撤销的证书,则要确保在恢复数据库时记下它们。否则,您说这是您的私有 CA,我不明白为什么生成新的 CERT 是个问题。

    您可能还可以使用 Microsoft 的“长镜头”方法(不知道如何在 OpenSSL 中做类似的事情)。

  3. 如果您可以将您的证书导入 MS CA,则 MS 可以轻松“右键单击”取消撤销。请参阅以下文档以了解如何执行此操作。这是该页面的 CLI:

    要在 CA 上的命令提示符处取消撤销原因代码为“证书保留”的证书,请键入:

    certutil -revoke CertificateSerialNumber unrevoke
    

阅读 X.509 建议告诉我们,可以通过 2 种方式“取消持有”证书:

  • 要么真的撤销它,通过在保持日期的同时更改原因代码
  • 或将其从 CRL 中完全删除。如果您计划颁发 deltaCRL,则必须对此类证书使用“removeFromCRL”原因代码,仅用于 deltaCRL。