能否使用EasyRsa创建CRL分发点并配置对应URI?
EasyRsa本质是封装OpenSSL操作的Shell脚本,没有对外暴露CRL分发点的显式配置项,但完全可以通过修改其内置的X509扩展配置实现需求,不需要推翻现有已搭建的CA环境重新部署,具体操作步骤如下:
修改全局证书扩展配置
进入你的EasyRsa工作目录,找到openssl-easyrsa.cnf配置文件,分别定位到[ usr_cert ](终端用户证书扩展段)、[ server_cert ](服务端证书扩展段)两个配置块,在块内添加CRL分发点配置:# 单CRL地址场景直接写这一行即可 crlDistributionPoints = URI:http://你部署CRL服务的访问地址/ca.crl如果需要配置多个备用CRL分发点,可以用引用配置段的方式编写:
crlDistributionPoints = @crl_distribute_point [ crl_distribute_point ] fullname = URI:http://主CRL地址/ca.crl fullname = URI:http://备用CRL地址/ca.crl配置完成后保存,后续所有新签发的对应类型证书都会自动写入CRL分发点字段。
存量已签发证书处理
对于修改配置前已经签发完成的证书,不需要重新生成私钥,直接使用EasyRsa自带的renew命令重签证书即可,重签过程会读取最新的扩展配置,将CRL分发点字段写入新证书,原有私钥完全保留可用:# 进入EasyRsa工作目录后执行,替换为你实际的证书文件名 ./easyrsa renew 目标证书名称 nopass重签完成后,只需要替换业务侧部署的公钥证书文件,不需要修改任何私钥相关配置。
配置有效性验证
证书签发/重签完成后,执行以下命令检查证书字段,确认CRL分发点已经正确写入:openssl x509 -in 目标证书路径.crt -noout -text | grep -A 2 "CRL Distribution Points"命令输出中能看到你配置的CRL访问地址即代表配置生效。
特殊场景说明:如果不需要给所有证书统一添加CRL分发点,只需要给特定证书绑定该字段,不要修改全局
openssl-easyrsa.cnf文件,可以在执行sign/renew命令时通过--extfile参数传入单独编写的扩展配置文件,将crlDistributionPoints字段写在独立配置文件中即可,不会影响其他证书的签发逻辑。
内容的提问来源于stack exchange,提问作者Giannis Stas

