ssl - 生成没有配置文件的 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 文件。
提前致谢,
理查德
解决方案
推荐阅读
- angular - ngx-swiper-wrapper 具有针对不同滑块的多种配置
- php - 如何在没有 javascript 的情况下使用 Apache 服务器在 PHP 中创建简单的 websocket 聊天应用程序
- javascript - JavaScript:使用通配符从父元素中选择所有子元素
- ansible - 如何使用从文件中获取的目录名称使用 ansible 创建目录
- python - 从 hdfs 读取文件 - pyspark
- java - Java Spring Boot - 通过按钮单击将下拉选项选择传递给方法
- eclipse-plugin - 禁用语法错误“符号
使用 CDT 的 Eclipse 插件中的某些符号无法解决” - php - 由于分隔符 (\),is_file 总是返回 false
- java - 密钥库被篡改或密码不正确]仍然无法正常工作
- javascript - Javascript添加的样式在IOS中不起作用