Я настраиваю freeradius в качестве сервера аутентификации для 802.1x. При тестировании конфигурации с помощью rad_eap_test сервер возвращает следующую ошибку:
[tls] <<< TLS 1.0 Handshake [length 0491], Certificate
--> verify error:num=27:certificate not trusted
[tls] >>> TLS 1.0 Alert [length 0002], fatal bad_certificate
TLS Alert write:fatal:bad certificate
TLS_accept: error in SSLv3 read client certificate B
rlm_eap: SSL error error:140890B2:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned
SSL: SSL_read failed in a system call (-1), TLS session fails.
TLS receive handshake failed during operation
Теперь я не уверен, о каком сертификате идет речь. Я создал свой собственный центр сертификации, из которого я выпустил сертификат сервера и клиента. Есть ли способ отследить, какой сертификат вызывает ошибку?
Самый простой способ проверить сертификат, не отвлекаясь на другие проблемы с Radius, - это использовать openssl s_client
.
Вот пример вызова:
openssl s_client -connect authserver.example.com:port -cert /path/to/clientcert.pem -CAPath /path/to/CAcerts/
В этом случае вполне вероятно, что вы не включили сертификат CA для клиента, сервера или того и другого. Если сервер и клиент не знают, где их найти, они не могут проверить сертификаты, выданные этим ЦС.