OpenVPN 撤销用户 - CRL 验证问题

dov*_*178 4 linux openvpn crl centos7

我已经配置了我的 OpenVPN,到目前为止它工作正常。最近我不得不撤销一个证书,在使用 easy-rsa revoke-full 后,我在 index.txt 中看到该特定用户已被撤销。我还注意到 crl.pem 有新的时间戳,所以它确实更新了。问题开始于 1 个月后,所有用户都被阻止,因为我在 server.conf 行中添加到 verify-crl 和 crl.pem 的路径

#CRL-VERIFY - for revoking users
crl-verify /etc/openvpn/easy-rsa/keys/crl.pem
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果我使用 easy-rsa 2.x 脚本 revoke-full 并且我可以看到该索引已将这个特定证书标记为要撤销。如果我还发现 /keys/crl.pem 的时间戳是当前时间戳,并且在我重新启动 openvpn 服务后(为了好的措施),它为什么仍然被阻止。

当然我可以删除verify-crl,但这不是重点。

Certificate Revocation List (CRL):
        Version 1 (0x0)
    Signature Algorithm: XXXXXXXXXXXXXXXX
        Issuer: /C=DE/ST=xxxxxx/L=xxxxxx/O=xxxxxxxxxx/OU=xxxxxxxxxx/CN=xxxxxxxxxx/emailAddress=lol@xxxxxxxxxx
        Last Update: May  1 07:10:34 2019 GMT
        Next Update: May 31 07:10:34 2019 GMT
Revoked Certificates:
    Serial Number: 0B
        Revocation Date: Mar 29 19:37:51 2019 GMT
Run Code Online (Sandbox Code Playgroud)

我看到下一次更新定于31.May,所以我想知道如何逐步取消证书,也许我错过了一些东西。

sim*_*ser 5

1个月后开始出现所有用户都被屏蔽的问题

我遇到了同样的问题。我发现默认情况下,openVPN+easy-rsa 只生成一个有效期为 30 天的 CRL,当 CRL 到期时,openVPN 将不允许任何连接。

由于我不吊销证书时候,我只是(1)创建一个脚本来重新生成CRL,和(2)改变了CRL到期时间为6个月。

这是我的regen-crl脚本,它在/etc/openvpn/easy-rsa--- 注意选项中运行-crldays 180

#!/bin/sh
CRL="crl.pem"
if [ "$KEY_DIR" ]; then
    cd "$KEY_DIR"
    rm -f "$RT"

    # set defaults
    export KEY_CN=""
    export KEY_OU=""
    export KEY_NAME=""

    # required due to hack in openssl.cnf that supports Subject Alternative Names
    export KEY_ALTNAMES=""

    # generate a new CRL -- try to be compatible with
    # intermediate PKIs
    $OPENSSL ca -crldays 180 -gencrl -out "$CRL" -config "$KEY_CONFIG"
    $OPENSSL crl -text -in "$CRL"
else
    echo 'Please source the vars script first (i.e. "source ./vars")'
    echo 'Make sure you have edited it to reflect your configuration.'
fi
Run Code Online (Sandbox Code Playgroud)

我还必须/etc/openvpn/easy-rsa/openssl.cnf通过更改[CA_default]部分中的这一行来修改以匹配:

default_crl_days= 180                   # how long before next CRL
Run Code Online (Sandbox Code Playgroud)