You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多系统FreeRADIUS出现证书链不受信任警告问题求助

解决FreeRADIUS默认配置下的"Certificate chain untrusted"警告

问题原因

你碰到的警告是因为新版本FreeRADIUS(搭配较新的OpenSSL版本)对TLS证书的信任验证逻辑更严格,而CentOS7上的FreeRADIUS 3.0.26和OpenSSL 1.0.6采用的旧版验证规则相对宽松,所以没触发警告。默认生成的证书(包括自签证书)未被FreeRADIUS的信任池认可,导致证书链验证失败。

解决步骤

1. 确认证书配置路径

打开FreeRADIUS的EAP-TLS配置文件(通常路径为/etc/freeradius/3.0/mods-available/eap),定位到tls配置块,确保ca_file、cert_file、key_file的路径正确指向证书文件:

tls {
    ca_file = "${certdir}/ca.pem"
    cert_file = "${certdir}/server.pem"
    key_file = "${certdir}/server.key"
    # 保留其他原有配置
}

${certdir}默认指向/etc/freeradius/certs/,如果手动填写全路径,要确保文件存在且FreeRADIUS运行用户(通常是freerad)拥有读取权限。

2. 将自签CA证书加入信任链

自签证书本身不在系统信任池中,需要手动添加:

  • 复制/etc/freeradius/certs/ca.pem到系统信任目录:
    • Debian/Ubuntu:cp /etc/freeradius/certs/ca.pem /usr/local/share/ca-certificates/freeradius-ca.crt
    • Rocky/CentOS:cp /etc/freeradius/certs/ca.pem /etc/pki/ca-trust/source/anchors/freeradius-ca.pem
  • 更新系统信任列表:
    • Debian/Ubuntu:update-ca-certificates
    • Rocky/CentOS:update-ca-trust extract
  • 确保FreeRADIUS的tls配置中ca_file指向该CA证书,若开启了客户端证书验证(verify_client = yes),客户端证书必须由这个CA签发。

3. 临时降低验证严格度(仅测试环境)

如果是测试场景不需要严格验证,可以临时调整TLS配置(生产环境不推荐):
在eap配置的tls块中添加或修改:

tls {
    # 其他配置...
    verify_depth = 0
    check_crl = no
    verify_client = no
}

4. 重新生成规范证书

默认生成的证书可能存在字段不规范问题,用FreeRADIUS自带脚本重新生成:

cd /etc/freeradius/certs/
./bootstrap

运行脚本时按提示填写证书信息,确保CN(通用名称)与服务器/客户端的主机名匹配,避免因CN不匹配导致的信任问题。

5. 验证配置生效

重启FreeRADIUS并启动调试模式查看输出:

systemctl restart freeradius
freeradius -X

若警告不再出现,说明配置已生效。

内容的提问来源于stack exchange,提问作者maciegpttest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:27:31