В конце концов я поговорил с ИТ-отделом организации и легко решил проблему. Моя ошибка состоит из нескольких оплошностей:
Файл «Сертификат CA» должен быть одним текстовым файлом (формат PEM) , содержащим список сертификатов, связанных в порядке доверия ( наименее доверенные в первую очередь, самые надежные в последнюю). Сертификат RADIUS не должен быть включен (и не должен). Сертификат RADIUS также имеет самый короткий срок действия . Мы должны включать восходящие сертификаты до корневого сертификата, чтобы этот подход работал. В моем случае порядок доверия такой (от минимального до самый надежный):
RADIUS cert -> intermediary cert -> root cert
Предупреждение: ваш случай может быть совсем другим. ИТ-специалист сказал мне, что мой корневой сертификат - "GlobalSign Root R1", который имеет следующий серийный номер:
04:00:00:00:00:01:15:4b:5a:c3:94
Я бы не смог найти его без его помощи. Я загрузил корневой каталог сертификат с веб-сайта GlobalSign (см. ниже), затем преобразовал двоичный сертификат в формат PEM:
$ openssl x509 -inform der -in Root-R1.crt -out Root-R1.pem
затем привязал сертификаты как корневой
# cat globalsign_intermediary.pem Root-R1.pem > /etc/NetworkManager/certs/work/all-certs.pem
и включил полный путь к all-certs.pem
в настройках подключения
NetworkManager (через графический интерфейс или редактирование текстового файла, который я указал в
вопросе).
Теперь перезапустите NetworkManager - в моем окне debian это означает выдачу:
# service networkmanager restart
После перезапуска я смог проверить подлинность AP, как указано в системном журнале:
Jul 8 16:03:32 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25
Jul 8 16:03:32 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected
Jul 8 16:03:32 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-PEER-CERT depth=2 subject='/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA'
Jul 8 16:03:32 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-PEER-CERT depth=1 subject='/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Organization Validation CA - G2'
Jul 8 16:03:32 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-PEER-CERT depth=0 subject='/C=US/XXXXXX (details removed)'
Jul 8 16:03:33 wirawan1 wpa_supplicant[3638]: EAP-MSCHAPV2: Authentication succeeded
Jul 8 16:03:33 wirawan1 wpa_supplicant[3638]: EAP-TLV: TLV Result - Success - EAP-TLV/Phase2 Completed
Jul 8 16:03:33 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
Более подробные сведения
Для заинтересованных один промежуточный сертификат имеет следующую тему:
subject= /C=BE/O=GlobalSign nv-sa/CN=GlobalSign Organization Validation CA - G2
ЦС "организации" должен использовать ключ R1, как показано здесь:
https://support.globalsign.com/customer/portal/articles/1426602-globalsign-root-certificates
ls /etc/resolvconf/run/interface
перечислит все элементы информации о серверах имен, которые были добавлены в базу данных resolvconf
. Их имена обычно идентифицируют интерфейс, с которым они связаны, и, возможно, другие вещи.
Это все текстовые файлы, фактически фрагменты /etc/resolv.conf
. Таким образом, вы можете просмотреть их с помощью любой утилиты для просмотра текста.
Например, в моей системе домашнего шлюза (Debian 9):
# ls /etc/resolvconf/run/interface/
eth2.dhclient eth2.ip6.dhclient lo.inet lo.named
(Если ваш дистрибутив Linux достаточно новый и имеет файловую систему /run
tmpfs, скорее всего, каталог будет /run/resolvconf/interface
.)
eth2
— это мой внешний интерфейс, который получает конфигурацию через DHCP. Домен по умолчанию и DNS-серверы IPv4, предоставленные DHCP-сервером моего интернет-провайдера, находятся в файле eth2.dhclient
. Файл eth2.ip6.dhclient
содержит ту же информацию для IPv6. lo.inet
содержит строку домена search
, которую я установил локально, и она переопределяет домен по умолчанию, установленный провайдером. И поскольку я запускаю локальную BIND для своего частного домашнего домена DNS, после запуска BIND конфигурация Debian systemd
для него может добавить строку nameserver 127.0.0.1
как lo.named
.
Поскольку в файле /etc/resolvconf/interface-order
указано, что lo
имеет приоритет над чем-либо еще, строка search
из lo.inet
всегда будет идти в настоящую /etc/resolv.conf
. Если мой BIND запущен, он будет использоваться как локальный сервер имен; но если по какой-то причине он выйдет из строя и systemd
не сможет перезапустить его, зависимости в конфигурации systemd
приведут к удалению lo.named
, а затем nameserver 127.0.0.1
в /etc/resolv.conf будет автоматически заменен серверами имен провайдера.