Настройка TLS-авторизации
Для настройки TLS-авторизации необходимо:
- Сгенерировать клиентский сертификат;
- Настроить radius-server local;
- Загрузить и установить созданный сертификат на клиентское устройство.
Генерация клиентского сертификата
Для генерации сертификата клиента нужно создать private-key, сгенерировать csr, выпустить сертификат клиента и создать контейнер pkcs12.
Генерация private-key
Для каждого сертификата клиента необходимо создать private-key. Используется алгоритм RSA, размер ключа в битах задается в диапазоне от 1024 до 4096 (необязательный параметр, по умолчанию – 2048 бит).
Команда имеет вид:
crypto generate private-key rsa [размер ключа 1024-4096] filename <Имя файла для ключа .pem>
Если ввести знак "?" после filename, то в подсказке будет показан список файлов с ключами в директории crypto:private-key/.
wlc# crypto generate private-key rsa filename ? WORD(1-31) Name of file ----FILE---- default_ca_key.pem default_cert_key.pem tester.pem wlc-sa.key
Можно выбрать файл, который уже существует и перезаписать его:
wlc# crypto generate private-key rsa 1024 filename tester.pem Destination file already exists. Do you really want to overwrite it? (y/N): y ..........++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ..................++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Если файлов слишком много, то в списке будет присутствовать только часть сертификатов:
wlc# crypto generate cert csr tester.csr ca ? CRYPTO FILES Select file: ----FILE---- E828C1000002.pem E828C1000004.pem E828C1000006.pem E828C1000008.pem E828C100000A.pem E828C100000C.pem E828C100000E.pem E828C1000010.pem E828C1000012.pem E828C1000014.pem E828C1000016.pem E828C1000018.pem E828C100001A.pem E828C100001C.pem E828C100001E.pem E828C1000020.pem E828C1000022.pem E828C1000024.pem E828C1000026.pem E828C1000028.pem E828C100002A.pem E828C100002C.pem E828C100002E.pem E828C1000030.pem E828C1000032.pem E828C1000034.pem E828C1000036.pem E828C1000038.pem E828C100003A.pem E828C100003C.pem E828C100003E.pem E828C1000040.pem E828C1000042.pem E828C1000044.pem E828C1000046.pem E828C1000048.pem E828C100004A.pem E828C100004C.pem E828C100004E.pem E828C1000050.pem E828C1000052.pem E828C1000054.pem E828C1000056.pem E828C1000058.pem E828C100005A.pem E828C100005C.pem E828C100005E.pem E828C1000060.pem E828C1000062.pem E828C1000064.pem E828C1000066.pem E828C1000068.pem E828C100006A.pem E828C100006C.pem E828C100006E.pem E828C1000070.pem E828C1000072.pem E828C1000074.pem E828C1000076.pem E828C1000078.pem E828C100007A.pem E828C100007C.pem E828C100007E.pem E828C1000080.pem E828C1000082.pem E828C1000084.pem E828C1000086.pem E828C1000088.pem E828C100008A.pem ...
В этом случае можно ввести часть слова и знак "?", чтобы увидеть отфильтрованные записи:
wlc# crypto generate cert csr tester.csr ca d? CRYPTO FILES Select file: ----FILE---- default_ca.pem default_cert.pem
Работа с файлами аналогична в остальных командах генерации сертификата.
Генерация csr
При генерации csr нужно выбрать private-key (файл, сгенерированный на предыдущем шаге), указать common-name в формате <имя пользователя>@<домен> и выбрать файл для сохранения csr (filename). Рекомендуется использовать реальные имя пользователя и домен в common name.
Помимо обязательных параметров существуют опциональные параметры:
- alternative-name – альтернативное имя пользователя (5–255 символов);
- country – код страны (2 символа);
- email-address – адрес электронной почты (3–64 символа);
locality – местонахождение клиента (1–128 символов);
- organization – название организации (1–64 символа);
- organizational-unit – название структурного подразделения организации (1–64 символа);
- state – название региона/области (1–128 символов).
wlc# crypto generate csr private-key tester.pem common-name tester@wlc.root filename tester.csr
crypto generate csr private-key tester.pem alternative-name IP:10.10.10.10 common-name tester@wlc.root country ru email-address test@test.com locality 4_floor organization ELTEX organizational-unit wireless state Novosibirsk_oblast filename tester.csr
Посмотреть созданный csr можно с помощью команды show crypto certificates csr <имя файла>:
Генерация сертификата, подписанного CA от RADIUS
После генерации csr клиента нужно подписать его с помощью CA-сертификата от RADIUS-сервера.
Команда генерации сертификата имеет вид:
crypto generate cert csr <имя csr-файла> ca <Имя файла CA-сертификата> private-key <Имя файла ключа CA-сертификата> filename <имя crt-файла для сохранения>
При этом по умолчанию будет сгенерирован сертификат сроком действия на 100 лет
Генерация сертификата с ограничением срока действия.
Для того чтоб ограничить срок действия сертификата, существуют дополнительные параметры:
valid-after <TIME> <DAY> <MONTH> <YEAR>
invalid-after <TIME> <DAY> <MONTH> <YEAR>
valid-after - время и дата, после которых сертификат будет валиден;
invalid-after - время и дата, после которых сертификат будет невалиден;
- <YEAR> – год, принимает значения [1970..2100];
- <MONTH> – месяц, принимает значения [January/February/March/April/May/June/July/August/
- September/October/November/December];
- <DAY> – день месяца, принимает значения [1..31];
- <TIME> – время, задаётся в виде HH:MM:SS, где:
- HH – часы, принимает значение [0..23];
- MM – минуты, принимает значение [0 .. 59];
- SS – секунды, принимает значение [0 .. 59].
wlc# crypto generate cert csr tester.csr ca default_ca.pem private-key default_ca_key.pem valid-after 00:03:00 01 September 2024 invalid-after 06:53:00 02 March 2025 filename tester.crt
Создание контейнера PKCS #12 с ключом и сертификатами
Формат .p12, также известный как PKCS #12, является стандартным форматом контейнера, который используется для хранения и обмена зашифрованными или подписанными данными. Он может содержать закрытые ключи, сертификаты, цепочки сертификации, а также другую смежную информацию. Рекомендуется использовать именно формат .p12, так как он поддерживается практически всеми операционными системами, программным обеспечением и устройствами, включая Windows, macOS, Linux, Android и iOS. Контейнеры формата .p12 могут быть защищены паролем, что обеспечивает дополнительный уровень безопасности. Пароль может быть использован для шифрования закрытых ключей и сертификатов, что делает их доступными только авторизованным пользователям. В формате .p12 можно хранить не только сертификаты, но и целую цепочку сертификации, что упрощает процесс установки и обновления сертификатов на различных устройствах.
Команда генерации контейнера имеет вид:
crypto generate pfx private-key <Имя файла ключа от клиентского сертификата> cert <Имя файла клиентского сертификата> ca <Имя файла CA> password ascii-text <Пароль от контейнера> filename <Имя файла для сохранения сертификата (.p12)>
wlc# crypto generate pfx private-key tester.pem cert tester.crt ca default_ca.pem password ascii-text 12345678 filename tester.p12
Настройка radius-server local
В настройках radius-server local необходимо включить tls mode domain в выбранном домене:
wlc(config-radius)# domain default wlc(config-radius-domain)# tls mode domain
Настройка SSID и RADIUS-профиля
Для корректной работы TLS-авторизации необходимо настроить RADIUS-профиль и SSID-профиль на работу с нужным доменом:
configure wlc ssid-profile default-ssid description default-ssid ssid wlc_tls_ssid radius-profile tls-radius exit radius-profile tls-radius auth-address 192.168.1.1 auth-password ascii-text encrypted 8CB5107EA7005AFF domain wlc.root exit
Настройка пользователя
Для завершения настройки WLC нужно указать сгенерированный сертификат в настройках пользователя, для которого этот сертификат сгенерирован. В примере common-name tester@wlc.root, поэтому нужно перейти к настройкам пользователя tester в домене wlc.root и указать название файла с сертификатом этого пользователя командой:
crypto cert <имя файла>
wlc# configure wlc(config)# radius-server local wlc(config-radius)# domain wlc.root wlc(config-radius-domain)# user tester wlc(config-radius-user)# crypto cert tester.crt
После настройки необходимо применить изменения:
wlc# commit wlc# confirm
Установка клиентского сертификата
Экспорт сертификата
Для установки сертификата на устройство клиента нужно экспортировать его с WLC. Это можно сделать с помощью команды copy с использованием протоколов ftp, http, https, scp, sftp, tftp, а также на USB- и MMC-устройства. Команда передачи контейнера с сертификатом имеет вид:
copy crypto:pfx/<Имя контейнера> <DESTINATION>
где <DESTINATION> – путь для копирования. Подробнее о команде copy можно прочитать по ссылке.
Установка сертификата для устройств с Android версии 11 и выше
Для установки сертификата на устройство с Android скопируйте содержимое архива на клиентское устройство.
- Зайдите в настройки устройства и откройте раздел "Пароли и безопасность" → "Конфиденциальность" → "Шифрование и учетные данные";
4. Если имеются старые сертификаты, то их можно удалить кнопкой "Очистить учетные данные";
5. Для загрузки новых сертификатов нажмите кнопку "Установка сертификатов";
6. Корневой и пользовательский сертификаты устанавливаются нажатием кнопки "Сертификат".
7. Выберите расположение распакованного архива;
8. Для загрузки корневого сертификата выберите файл "wireless-ca.crt", затем введите его название;
9. Для загрузки пользовательского сертификата выберите файл "user.p12", затем введите пароль, указанный в сертификате, и название.
Установка сертификата в iOS
Для установки сертификата на устройство с iOS отправьте файлы с сертификатами (*.crt и *.p12) почтой на свой e-mail и откройте их на телефоне. Также можно загрузить файлы на свой телефон через usb.
Установка корневого сертификата
Открыв письмо с вложенным файлом стандартными приложениями iOS (Safari, Mail), нажмите на файл с расширением *.crt. При установке сертификата система будет предупреждать о ненадежности профиля, разрешите установку и сертификат будет успешно установлен.
Установка пользовательского сертификата
Установка пользовательского сертификата происходит аналогично установке корневого сертификата. Далее необходимо ввести пароль сертификата. Пароль соответствует параметру сертификата Password, который находится в файле .txt.
Установка сертификата в Windows
- Откройте файл .р12. Параметры менять не нужно. Нажмите "Далее".
2. Введите пароль. Он соответствует параметру сертификата Password, который вы указали при генерации контейнера на wlc.
3. Подтвердите установку пользовательского сертификата.
4. При успешной установке пользовательского и корневого сертификата отобразится следующий экран.
Подключение к SSID с поддержкой TLS
Подключение с Android
- В меню Wi-Fi найдите созданный ранее SSID test_enterprise.
2. Задайте параметры подключения к сети:
Метод EAP: TLS
Сертификат: wireless-ca
Сертификат пользователя: test
Удостоверение: test
Значение параметра "Удостоверение" задается в соответствии с именем пользователя в сертификате.
3. Если параметры введены верно, авторизация пройдет успешно.
Подключение с Windows
Для создания и настройки нового подключения перейдите в "Центр управления сетями и общим доступом" → "Создание и настройка нового подключения или сети".
В открывшемся окне выберите пункт "Подключение к беспроводной сети вручную" и нажмите "Далее".
Введите информацию о беспроводной сети:
- Имя сети;
- Тип безопасности: WPA2-Enterprise.
Установите флаг "Запускать это подключение автоматически". Нажмите "Далее".
Сеть успешно добавлена. Далее необходимо настроить параметры подключения.
Откройте раздел "Безопасность", выберите метод проверки подлинности "Microsoft: смарт-карта или иной сертификат". Нажмите кнопку "Параметры".
Установите следующие флаги:
- Использовать сертификат на этом компьютере;
- Использовать выбор простого сертификата;
- Подтверждать удостоверение сервера с помощью проверки сертификата;
- Использовать для подключения другое имя пользователя.
В списке "Доверенных корневых центров сертификации" выберите корневой сертификат "Eltex default certificate authority". Это сертификат УЦ, который установился при установке клиентского сертификата.
Нажмите кнопку "ОК". В открывшемся окне выберите "Дополнительные параметры".
Укажите режим проверки подлинности – "Проверка подлинности пользователя". Нажмите "ОК".
Найдите нужную сеть и нажмите "Подключиться". Выберите пользовательский сертификат для подключения к сети и введите логин пользователя. Нажмите "ОК".
Если параметры введены верно, подключение пройдет успешно.
Подключение с Ubuntu
Создайте новое подключение к сети:
Укажите ssid:
Введите параметры для подключения к сети:
- Security – WPA & WPA2 Enterprice;
- Authentication – TLS;
- Identity – имя пользователя на радиус сервере;
- CA certificate – сертификат УЦ (скачивается c wlc отдельно);
- User certificate – контейнер с сертификатом клиента;
- User private key – контейнер с сертификатом клиента (он также содержит ключ);
- User key password – пароль импорта, заданный при генерации контейнера.
Если параметры введены верно, подключение пройдет успешно.
Подключение с iOS
В меню настройки Wi-Fi найдите необходимую сеть. При подключении к сети введите свой личный логин, выберите режим EAP-TLS. Нажмите на пункт "Удостоверение" и выберите сертификат. Вернитесь назад к вводу пароля и нажмите "Подключиться". В появившемся окне нажмите кнопку "Принять".
Обновление и замена серверного сертификата
Существуют команды для обновления дефолтного CA-сертификата и/или сертификата сервера:
wlc# update crypto default ca wlc# update crypto default cert
Для замены сертификата сервера нужно загрузить новый сертификат, CA-сертификат и ключ от сертификата сервера и поместить их в директории crypto:cert/ и crypto:private-key/. После загрузки файлов следует указать сертификаты сервера и CA, а также ключ от сертификата сервера в настройках radius-server local. По умолчанию указан дефолтный сертификат.
configure radius-server local crypto private-key my_cert_key.pem crypto cert my_cert.pem crypto ca my_ca.pem
После обновления или замены сертификатов нужно перезагрузить WLC или перезапустить RADIUS-сервер:
wlc(config)# radius-server local wlc(config-radius)# no enable wlc(config-radius)# do commit wlc(config-radius)# do restore wlc(config-radius)# do rollback
После обновления или замены серверного сертификата нужно перевыпустить клиентские сертификаты.