首页 > 解决方案 > 生成没有配置文件的 OpenSSL CRL 文件

问题描述

我有一个基本的 nginx 家庭服务器设置,我使用客户端证书来允许外部访问。我已按照本指南进行所有设置,并按预期工作:

https://gist.github.com/rkaramandi/20a04a41536f3d7e6d2f26b0b9605ab6

总之:

openssl genrsa -aes256 -out ca.privkey 4096
openssl req -new -x509 -days 365 -key ca.privkey -out ca.crt

openssl genrsa -aes256 -out bobs-ipad.privkey 4096
openssl req -new -out bobs-ipad.csr -key bobs-ipad.privkey 
openssl x509 -req -days 365 -in bobs-ipad.csr -CA ca.crt -CAkey ca.privkey -set_serial 100 -out bobs-ipad.crt
openssl pkcs12 -export -clcerts -in bobs-ipad.crt -inkey bobs-ipad.privkey -out bobs-ipad.p12

还要openssl pkcs12 -in bobs-ipad.p12 -out bobs-ipad.pem -nodes生成一个pem文件。

在 nginx 配置中:

    ssl_client_certificate <path>/ca.crt;
#    ssl_crl <path>/ca.crl;
    ssl_verify_client optional;

...
   location / {
        if ($ssl_client_verify != SUCCESS) {
            return 403;
        }


我能够从外部访问服务器,并且只有客户端计算机上的签名证书才允许访问。

但是,如果其中一个签名证书被泄露,我将不得不重新生成 CA 并重新分发新的签名客户端证书。我知道 CRL 文件可用于ssl_crl <path to crl>;在 nginx 配置中撤销证书,但我不确定使用我遵循的指南生成此文件。

可以使用这样的命令openssl ca -gencrl -keyfile ca.privkey -cert ca.crt -out ca.crl

但这依赖于我相信的带有证书索引的配置文件?

-in bobs-ipad.pem无论如何使用上述命令来输入我想要撤销的 pem 或 p12 客户端证书(或列表) ?

如果不是,也许我需要重新开始并使用索引文件配置-revoke证书并重新生成 crl 文件。

提前致谢,

理查德

标签: sslnginxopenssl

解决方案



推荐阅读