Versão avaliada: Fedora 42
Os parâmetros abaixo são opcionais, bastando executar o comando ./bootstarp sem as alterações informadas abaixo para criar os certificados necessários para o funcionamento do FreeRADIUS. Lembrando que o prazo do certificado é de 60 dias, portanto será necessário atualizar o certificado frequentemente.
Criar o arquivo "Diffie-Hellman"
# openssl dhparam -check -text -5 -out /etc/raddb/certs/dh 2048 <- pode usar valores 1024 e 4096
Para personalizar o certificado com as configurações de seu ambiente, alterar os arquivos abaixo, os principais parâmetros estão em negrito.
# vi passwords.mk
PASSWORD_SERVER = 'changeit'
PASSWORD_INNER = 'changeit'
PASSWORD_CA = 'changeit'
PASSWORD_CLIENT = 'changeit'
USER_NAME = 'admin@local.domain'
CA_DEFAULT_DAYS = '3560'
Acesse o arquivo CA (Certificado Autoritativo).
# cd /etc/raddb/certs
# vi ca.cnf
[ CA_default ]
....
default_days = 3650
....
[ req ]
....
default_bits = 2048
input_password = changeit <- Alterar como desejar
output_password = changeit
....
[certificate_authority]
countryName = BR
stateOrProvinceName = Radius
localityName = Somewhere
organizationName = Example Inc.
emailAddress = admin@local.domain
commonName = "Example Certificate Authority"
....
Acesse o arquivo Server.
# vi server.cnf
[ CA_default ]
....
default_days = 3560
....
[ req ]
....
default_bits = 2048
input_password = changeit
output_password = changeit
....
[server]
countryName = BR
stateOrProvinceName = Radius
localityName = Somewhere
organizationName = Example Inc.
emailAddress = admin@local.domain
commonName = "Example Server Certificate"
....
[alt_names]
DNS.1 = hl251.local.domain
....
Acesse o arquivo Client.
# vi client.cnf
[ CA_default ]
....
default_days = 3560
....
[ req ]
....
default_bits = 2048
input_password = changeit
output_password = changeit
[client]
countryName = BR
stateOrProvinceName = Radius
localityName = Somewhere
organizationName = Example Inc.
emailAddress = admin@local.domain
commonName = admin@local.domain
Acesse o arquivo Server.
# vi inner-server.cnf
[ CA_default ]
....
default_days = 3560
....
[ req ]
....
default_bits = 2048
input_password = changeit
output_password = changeit
[server]
countryName = BR
stateOrProvinceName = Radius
localityName = Somewhere
organizationName = Example Inc.
emailAddress = admin@local.domain
commonName = "Example Inner Server Certificate"
Arquivo de configuração do serviço TLS
# /etc/raddb/sites-available/tls
listen {
....
tls {
....
private_key_password = whatever
....
home_server tls {
....
tls {
....
private_key_password = whatever
....
Arquivo de configuração do serviço EAP
# vi /etc/raddb/mods-available/eap
....
eap {
....
tls-config tls-common {
....
private_key_password = whatever
....
Arquivo de configuração do serviço INNER-EAP
# vi /etc/raddb/mods-available/inner-eap
....
tls {
private_key_password = whatever
....
Execute o script bootstrap para realizar a criação do certificado com os novos parâmetros.
# ./bootstrap
Reinicie o serviço.
# systemctl restart radiusd.service
Não usei
###################################### vi /etc/raddb/certs/xpextensions
[ xpserver_ext]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
crlDistributionPoints = URI:http://www.example.com/example_ca.crl
subjectAltName = @alt_names
[alt_names]
DNS.1 = hl251.local.domain
# NAIRealm from RFC 7585
otherName.0 = 1.3.6.1.5.5.7.8.8;FORMAT:UTF8,UTF8:*.local.domain
Para renovar o certificado siga os passos abaixo.
Mova o certificado velho para um local diferente.
# cd /etc/raddb/certs
# mkdir OLDCerts && mv *.pem *.key OLDCerts/
O comando abaixo auxilia na remoção dos arquivos não mais necessarios.
# make destroycerts
rm -f *~ dh *.csr *.crt *.p12 *.der *.pem *.key index.txt* \
serial* *\.0 *\.1 ca-crl.pem ca.crl
Criar o arquivo "Diffie-Hellman"
# openssl dhparam -check -text -5 -out /etc/raddb/certs/dh 2048
Execute o script bootstrap para realizar a criação do certificado com os novos parâmetros.
# ./bootstrap
# systemctl restart radiusd