Apache2 中的黑名单客户端证书?

Apache2 中的黑名单客户端证书?

有没有办法黑名单颁发给特定用户的客户端证书?

我目前遇到的情况是,一些恶意行为者拥有我网站的客户端证书,但我不知道如何阻止他们使用它。

Apache2我目前在 CentOS 机器上运行,但NGINX如果需要的话可以迁移到。

答案1

请求颁发证书的 CA 撤销该证书。 CA(应该)定期发布证书吊销列表(CRL),本质上是任何依赖方(在本例中为您的 Apache 服务器)不应信任的证书黑名单。

您可以通过查找 CRL 分发点扩展来检查您的 CA 是否颁发 CRL:

$ openssl x509 -noout -text -in example.crt | grep -A1 "Full Name"

            Full Name:
              URI:http://pki.example.test/cdp/example-CA.crl

该 URL 是依赖方可以下载 CRL 的位置。

或者,CA 可以使用OCSP分发撤销信息。这是一个更复杂的系统,依赖方向响应者查询特定证书的吊销状态。您可以使用以下方法找到它:

$ openssl x509 -noout -text -in example.crt | grep "OCSP"

                OCSP - URI:http://ocsp.example.test

这是 OCSP 响应器的 URL。

如果您没有看到其中任何一个,则 CA 不会发布吊销信息,您很可能不走运。

然而,阿帕奇有SSLCA撤销文件选项可以指向通过某种替代方法下载的 CRL。例如,万一 CA 生成 CRL,但不通过上述任一方法分发它们,但愿意通过电子邮件将其发送给您;您可以将其保存到服务器并使用此选项将 Apache 指向它。我建议不太可能。

答案2

得到帮助后garethTheRed。我编写了一个 Python 脚本来帮助您撤销客户端证书。由于我是我自己的证书颁发机构 (CA),因此我可以轻松获得更新我的 CRL 所需的 CA 私钥。

如果有人遇到类似问题,你也可以。你可以在这里找到我的代码要旨

相关内容