TLS - Config - common
Synopsis
Note
|
tls-config tls-common is not a module. |
Common TLS configuration for TLS-based EAP types. See raddb/certs/README
for additional comments on certificates.
If OpenSSL
was not found at the time the server was built, the tls
, ttls
, and peap
sections will be ignored.
Otherwise, when the server first starts in debugging mode, test certificates will be created. See the make_cert_command
below for details and the README file in raddb/certs
These test certificates SHOULD NOT be used in a normal deployment. They are created only to make it easier to install the server and to perform some simple tests with EAP-TLS
, TTLS
, or PEAP
.
See also: http://www.dslreports.com/forum/remark,9286052~mode=flat
Note
|
Globally known CA should not be used here! e.g. using a Verisign cert as a known CA means that ANYONE who has a certificate signed by them can authenticate via EAP-TLS ! This is likely not what you want.
|
Processing Sections
Any.
Expansions
None.
Directives
- Syntax
-
ca_file = string
- Default
-
${cadir}/ca.pem
- Description
-
Trusted Root CA list: ALL of the
CA’s
in this list will be trusted to issue client certificates for authentication. In general, self-signed certificates should be used for 802.1x (EAP) authentication, and this CA file should contain ONLY one CA certificate. This parameter is used only for EAP-TLS, when you issue client certificates. If you do not use client certificates, and you do not want to permit EAP-TLS authentication, then delete this configuration directive.
- Syntax
-
ca_path = string
- Default
-
${cadir}
- Description
-
Checks the Certificate Revocation List
-
Copy CA certificates and CRLs to same directory.
-
Execute 'c_rehash <CA certs&CRLs Directory>'. 'c_rehash' is OpenSSL’s command.
-
uncomment the line below.
-
Restart radiusd
-
- Syntax
-
certificate_file = string
- Default
-
${certdir}/server.pem
- Description
-
If
ca_file
is not used, then thecertificate_file
MUST include not only the server certificate, but ALSO all of the CA certificates used to sign the server certificate.
- Syntax
-
check_cert_cn = string
- Default
-
%{User-Name}
- Description
-
If
check_cert_cn
is set, the value will bexlat’ed
and checked against theCN
in the client certificate. If the values do not match, the certificate verification will fail, rejecting the user. This check is done only if the previouscheck_cert_issuer
is not set or if the check succeeds. In versions 2.1.10 and later, this check can be done more generally by checking the value of theTLS-Client-Cert-CN
attribute. This check can be done via any mechanism you choose.
- Syntax
-
check_cert_issuer = string
- Default
-
/C=GB/ST=Berkshire/L=Newbury/O=My Company Ltd
- Description
-
If
check_cert_issuer
is set, the value will be checked against theDN
of the issuer in the client certificate. If the values do not match, the cerficate verification will fail, rejecting the user. In versions 2.1.10 and later, this check can be done more generally by checking the value of theTLS-Client-Cert-Issuer
attribute. This check can be done via any mechanism you choose.
- Syntax
-
check_crl = boolean
- Default
-
yes
- Description
-
Checks the Certificate Revocation List
-
Copy CA certificates and CRLs to same directory.
-
Execute 'c_rehash <CA certs&CRLs Directory>'. 'c_rehash' is OpenSSL’s command.
-
uncomment the line below.
-
Restart radiusd
-
- Syntax
-
cipher_list = string
- Default
-
DEFAULT
- Description
-
Set this option to specify the allowed
TLS
cipher suites. The format is listed inman 1 ciphers
.
- Syntax
-
dh_file = string
- Default
-
${certdir}/dh
- Description
-
For
DH cipher suites
to work, you have to runOpenSSL
to create theDH
file first:openssl dhparam -out certs/dh 1024
- Syntax
-
ecdh_curve = string
- Default
-
prime256v1
- Description
-
Elliptical cryptography configuration. Only for OpenSSL >= 0.9.8.f
- Syntax
-
fragment_size = integer
- Default
-
1024
- Description
-
Fragment_size
can never exceed the size of a RADIUS packet (4096 bytes), and is preferably half that, to accommodate other attributes in the RADIUS packet. On mostAPs
the MAX packet length is configured between 1500-1600; in these cases, fragment size should be 1024 or less.
- Syntax
-
include_length = boolean
- Default
-
yes
- Description
-
Include_length
is a flag that is by default set to yes. If set to yes, the total length of the message is included in EVERY packet we send. If set to no, the total length of the message is included ONLY in the first packet of a fragment series.
- Syntax
-
make_cert_command = string
- Default
-
${certdir}/bootstrap
- Description
-
This command creates the initial
snake oil
certificates when the server is run as root and viaradiusd-X
. As of 2.1.11, this command ALSO checks the server certificate for validity, including expiration. This check means thatradiusd
will refuse to start when the certificate has expired. The alternative is to have the802.1X clients
refuse to connect when they discover the certificate has expired. Having the server print an error message and refuse to start is the preferred solution, as identifying and debugging client issues is too complex.
- Syntax
-
private_key_file = string
- Default
-
${certdir}/server.pem
- Description
-
If
ca_file
is not used, then thecertificate_file
MUST include not only the server certificate, but ALSO all of the CA certificates used to sign the server certificate.If Private key & Certificate are located in the same file, then
private_key_file
&certificate_file
must contain the same file name.
- Syntax
-
private_key_password = string
- Default
-
whatever
- Description
-
The password for the private key.
- Syntax
-
psk_hexphrase = integer
- Default
-
036363823
- Description
-
If
OpenSSL
supportsTLS-PSK
, then we can use aPSK
identity and (hex
) password. When thepsk_identity
andpsk_hexphrase
are specified, then the following certificate-based configuration directives are not allowed:private_key_password
private_key_file
certificate_file
ca_file
ca_path
Future versions of the server may be able to look up the shared key (hexphrase
) based on the identity, but for now, the identity is fixed and must be the same as the client. The passphrase
must be a hex value and can be up to 256 hex digits.
- Syntax
-
psk_identity = string
- Default
-
test
- Description
-
If
OpenSSL
supportsTLS-PSK
, then we can use aPSK
identity and (hex
) password. When thepsk_identity
andpsk_hexphrase
are specified, then the following certificate-based configuration directives are not allowed:private_key_password
private_key_file
certificate_file
ca_file
ca_path
Future versions of the server may be able to look up the shared key (hexphrase
) based on the identity, but for now, the identity is fixed and must be the same as the client. The passphrase
must be a hex value and can be up to 256 hex digits.
- Syntax
-
random_file = string
- Default
-
${certdir}/random
- Description
-
If your system doesn’t have
/dev/urandom
, you will need to create this file and periodically change its contents. For security reasons, FreeRADIUS doesn’t write to files in its configuration directory.