É possível executar o FreeRadius (versão 3.0.13) com duas CAs diferentes? Para que eu tenha um certificado de servidor de uma CA e os certificados de cliente venham de uma CA diferente?
Nossa configuração atual /etc/raddb/mods-enabled/eap
se parece um pouco com isso:
...
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
}
...
E este é o erro que vejo nos logs:
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)
Depois que os clientes e o servidor obtiveram seus certificados da mesma CA, tudo funcionou bem.
Então, é possível ter CAs diferentes para servidor e cliente? Se sim, o que eu teria que fazer para realizar essa tarefa?
Com alguma ajuda de Alan DeKok da lista de discussão FreeRadius os problemas podem ser resolvidos.
Primeiro, precisávamos usar apenas
ca_path
semca_file
adição. Em seguida, colocamos todos os certificados de CA noca_path
diretório.Finalmente, o cliente também precisava da CA raiz para o certificado do servidor. E então os clientes poderiam finalmente se conectar: