tym*_*mik 6 certificate openvpn
我遇到了一个问题,我从服务器中删除了证书文件。
但是拥有这些文件的客户端仍然可以连接。
我发现,我应该撤销证书,这可以通过更改与该证书的行来完成
/etc/openvpn/easy-rsa/keys/index.txt
将 R 而不是 V 作为第一个字符行。
但之前我已经从文件中删除了该证书的行,因为再次尝试生成该证书只是给出了一个 0 字节大小的文件。
正如我所读到的,从 删除后它应该无法连接index.txt
,但它确实连接了。
什么可能导致问题,我如何才能禁止该特定证书连接?
我希望能够创建具有相同名称、CN 和我为每个证书设置的其他变量的证书,因为那个被禁止 - 新创建的证书应该能够连接。
编辑:
解决方案是撤消更改index.txt
(在我希望撤销的证书中将 R 改回 V)并在 中生成 CRL easy-rsa
,但缺少了。
不得以我的方式手动更改 index.txt,因为它缺少撤销日期并且不允许我生成丢失的 CRL。我发现/etc/openvpn/easy-rsa/revoke-full <cert name>
,在我的情况下,撤销应该由, 与生成证书时的所有变量一起完成。
the*_*bit 10
简单的答案是它不起作用,因为你都弄错了。
您的基本误解似乎在于 OpenVPN 和证书颁发机构确实有一个通信通道,因此 OpenVPN 会自动知道您想要允许哪些证书。事实并非如此。OpenVPN 和证书颁发机构是完全独立的实体(即使它们都位于同一主机上)并且彼此之间没有任何通信。
CA 通过用自己的私钥加密认证请求的散列来“签署”认证请求(基本上是与主机名等标识信息捆绑在一起的公钥)。OpenVPN 所做的是检查 a) 它是否可以使用 CA 的公钥(它具有,通常驻留在某个 ca.crt 文件中)解密哈希,并检查给定证书的哈希是否正确。它不需要也不使用任何与 CA 的“实时”连接。
您不能通过从 CA 的目录中删除证书来撤销证书(请注意,如果您已删除客户端证书并且它是您唯一的副本,则openssl ca
不允许您再撤销它)或更改 index.txt(此文件只是一个openssl ca
有关可用证书状态的指示)。你需要做的是
openssl ca -revoke <certificate file>
撤销内部OpenSSL CA数据库中的证书(基本上是在 中添加撤销信息index.txt
)openssl ca -gencrl -out ca.crl
crl-verify
OpenVPN 配置文件中的指令)如果您正在使用easy-rsa
为OpenSSL CA设置的shell 包装器脚本,请参阅有关证书吊销的OpenVPN 部分,以获取有关如何使用 easy-rsa 脚本实现上述目的的更详细文档。基本程序是
# cd into the easy-rsa directory
cd <somewhere>/easy-rsa
# load your CA-related variables into the shell environment from the ./vars file
. ./vars
# run the revoke script for <clientcert.pem>
./revoke-full clientcert
Run Code Online (Sandbox Code Playgroud)
您会$KEY_DIR
在./vars
文件中定义的目录中找到 crl.pem 。
归档时间: |
|
查看次数: |
30739 次 |
最近记录: |