Назад | Перейти на главную страницу

Что означает ошибка FreeRADIUS «SSL сообщает об ошибке 25: превышено ограничение длины пути»?

Я тестирую функции WLAN устройства, подключенного к серверу RADIUS. Этот сервер RADIUS расположен на Raspberry Pi с Raspbian Stretch и использует FreeRADIUS 3.0 и Hostapd.

Несколько из EAP-TLS тестовые примеры проверяют, что произойдет, если длинные «цепочки доверия» используются. Под длинными цепочками доверия я подразумеваю открытые ключи, подписанные длинная цепочка промежуточных сертификатов.

Теперь я столкнулся с проблемой, что в некоторых тестовых случаях FreeRADIUS возвращает конкретную ошибку в своем журнале:

SSL сообщает об ошибке 25: превышено ограничение длины пути

Один из этих тестовых случаев описан ниже:

Файлы сертификата RADIUS:

Файлы сертификата клиента:

При попытке подключиться с этой настройкой после того, как клиент отправил свой Hello, сервер RADIUS начинает отправлять свою цепочку сертификатов CA вместо ожидаемого сертификата сервера (видел это с помощью Wireshark). Также выдает ошибку 25.

А теперь вопросы:

  1. Что означает ошибка «SSL сообщает об ошибке 25: превышено ограничение длины пути» и связано ли это с длиной цепочек доверия?

  2. Является ли описанная конфигурация законной?

  3. Почему сервер отправляет свою цепочку сертификатов CA, а не сертификат сервера?

  4. Есть ли ограничение на количество промежуточных звеньев, используемых в цепочке доверия?

Что означает ошибка «SSL сообщает об ошибке 25: превышено ограничение длины пути» и связано ли это с длиной цепочек доверия?

Это относится к расширению pathLenConstraint сертификата. С помощью этого расширения ЦС может ограничить глубину возможного пути доверия. Например, ЦС может выдавать дополнительный ЦС, но ограничивать его, чтобы он не мог выдавать дополнительные дополнительные ЦС, а только листовые сертификаты. Смотрите также Сертификаты Длина пути базового ограничения.

Является ли описанная конфигурация законной?

Может быть, а может и нет, в зависимости от того, ограничен ли путь len, чтобы запретить доверительный путь этой длины или нет.

Почему сервер отправляет свою цепочку сертификатов CA, а не сертификат сервера?

Сервер должен отправить свой листовой сертификат, а также промежуточные сертификаты, которые необходимы для создания пути доверия к доверенному корневому ЦС. Если сервер отправляет только цепочку, но не листовой сертификат, что-то не так. Но, возможно, вы не заметили, что сервер отправляет также листовой сертификат (должен быть первым), а не только сертификаты цепочки.

Есть ли ограничение на количество промежуточных звеньев, используемых в цепочке доверия?

Если он указан с pathLenConstraint, то есть такое ограничение. Если такое ограничение не задано, в теории нет ограничений, но на практике стеки TLS могут запрещать безумно большие цепочки.