OpenVPN 撤销用户 - CRL 验证问题

OpenVPN 撤销用户 - CRL 验证问题

我已经配置了我的 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

所以我的问题是,如果我使用 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

我看到下一次更新计划于 5 月 31 日进行,因此我想知道撤销证书的分步程序,也许我遗漏了一些东西。

答案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

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

default_crl_days= 180                   # how long before next CRL

相关内容