是否可以使用两个不同的 CA 运行 FreeRadius(版本 3.0.13)?所以我有一个来自一个 CA 的服务器证书,而客户端证书来自另一个 CA?
我们当前的设置/etc/raddb/mods-enabled/eap
看起来有点像:
...
tls-config tls-common {
certificate_file = ${certdir}/server.pem # certificate only from CA ONE
ca_file = ${cadir}/ca.pem # complete chain from CA TWO
auto_chain = no
ca_path = ${cadir} # contains all certs/complete chains from both CAs
}
...
这是我在日志中看到的错误:
Mon Dec 20 13:15:30 2021 : ERROR: (352) eap_tls: ERROR: TLS Alert read:fatal:unknown CA
Mon Dec 20 13:15:30 2021 : ERROR: (352) eap_tls: ERROR: TLS_accept: Failed in error
Mon Dec 20 13:15:30 2021 : ERROR: (352) eap_tls: ERROR: Failed in __FUNCTION__ (SSL_read)
一旦客户端和服务器从同一个 CA 获得证书,一切正常。
那么服务器和客户端是否可以有不同的 CA?如果是,我需要做什么才能完成这项任务?
在FreeRadius邮件列表的Alan DeKok的帮助下,问题可以得到解决。
首先,我们只需要使用
ca_path
而无需ca_file
添加。然后我们把所有的CA证书放到ca_path
目录下。最后,客户端还需要服务器证书的根 CA。然后客户端最终可以连接: