生成没有配置文件的 OpenSSL CRL 文件

Generate OpenSSL CRL file without a configuration file

我有一个基本的 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 文件可用于在 nginx 配置中使用 ssl_crl <path to crl>; 来吊销证书,但我不确定是否使用我遵循的指南生成此文件。

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

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

是否可以使用类似上述的命令输入一个(或列表)我想撤销的 pem 或 p12 客户端证书-in bobs-ipad.pem

如果不是,我可能需要重新开始并使用索引文件进行配置,然后 -revoke 证书并重新生成 crl 文件。

提前致谢,

理查德

这似乎不可能。我找到了一些其他指南来使用配置文件(并生成新的 CA):https://arcweb.co/securing-websites-nginx-and-client-side-certificate-authentication-linux/ https://www.djouxtech.net/posts/nginx-client-certificate-authentication/