Оглавление |
---|
Для настройки 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 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 private-key rsa 4096 filename tester.pem .+...+..................+....+...+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+............+.+......+.....+.+.....+...+.........+.......+.........+.....+.......+..................+..+..........+..............+..........+...........+.........+.........+.+...................................+...+...+....+..............+....+...........+.......+..+...+....+...+.................+....+..+.......+..+.+...+.........+.....+.+..+..................+....+..+..........+.....+..........+.....+.+.....+.........+....+..+.......+..+.+...+......+...+...........+.......+..+......+.+...+...........+..........+.....+.+......+.....+.........+...............+....+..+.............+..+..........+...+.....+.........+.......+....................................+.....+............+............+.........+....+.....+...............+............+.+.....+..........+..+.......+.........+...........+..........+...+........+....+........+......+.+...+.....+.............+........+....+...........+....+..+....+.....+.........+.......+...+..+...+...+....+....................+...............+......+...................+..............+....+.................+...+.+..+...+....+...+........+....+..............................+...+...............+.................+......................+........+...............+.....................+.+......+.....+.........+.........+....+........+.......+......+.................+..........+.........+........+.+.....+.+...+...........+.......+...+.........+.....+.........................+......+......+.....+.........+......+.+..+.+..+.........+.+..................+..+..............................+.......+.....+.+.....+.+...+......+.....+............+.......+..................+.....+.........+....+..............+.+...............+....................+.+.....+.............+.....+.......+.........+..+.............+...........+...+...+....+...+....................+......+.......+...+.....+.........+.............+...+..............+.......+.....+....+..............+......+........................+..........+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...+................+......+..+.+......+.....+......+...+.+...+...+...+.....+....+......+..+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+.....................+......+..........+........+....+...+...+......+.........+......+...+.....+...+....+.....+......+...+......+...+.......+...............+........+......+.+..............+......+.+............+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..........+.....................+...............+.........+..........+...+......+......+......+..+...+.........+................+..+......+.+......+..+......+.......+............+...+..+.+.........+..+...+.+...............+..+.............+...........+.+............+.....................+.....+....+..+..................+...+...+.........+..........+............+.....+...............+.+..+.......+.....+....+..+...+.......+............+...............+........+...+.+...............+...........+............+......+....+..+.....................+....+...+...........+...............+......+..................+.+..+....+...+..+..........+.........+............+.........+...+.....+...+...+.+........+.+.....+.+...+.....+.+...........+....+.....+......+.+............+..+................+..+.+..............+...+..........+...+.....+.........+.+....................+......+.........+.+......+...+..+...+..........+......+...........+....+...+...+..+...+..........+..+.+....................+.......+.....+.............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
Генерация csr
При генерации csr нужно выбрать private-key (файл, сгенерированный на предыдущем шаге), указать common-name в формате <имя пользователя>@<домен> и выбрать файл для сохранения csr (filename). Имя пользователя и домен в common name должны соответствовать реальному домену и имени пользователя в этом домене.
Помимо этих обязательных параметров существуют опциональные параметры:
- alternative-name - – альтернативное имя пользователя (5 - 255 символов);
- country - country – код страны (2 символа);
- email-address - адрес электронной почты (3 - 64 символа);
locality - местонахождение клиента (1 - 128 символов);
- organization - название организации (1 - 64 символа);
- organizational-unit - название структурного подразделения организации (1 - 64 символа);
- state - название региона / области (1 - 128 символов).
...
Блок кода | ||||
---|---|---|---|---|
| ||||
wlc# show crypto certificates csr tester.csr Version: 1 Subject name: C(countryName): ru ST(stateOrProvinceName): Novosibirsk_oblast L(localityName): 4_floor O(organizationName): ELTEX OU(organizationalUnitName): wireless CN(commonName): tester@wlc.root emailAddress(emailAddress): test@test.com Signature: Algorithm: sha256WithRSAEncryption Value: 32:DE:27:BE:38:E0:B4:1A:BE:57:0C:50:5E:05:D5:9F:3D:ED: 12:EC:27:3F:42:17:3D:36:EC:72:4A:52:AF:0C:C1:FB:6A:CA: 12:27:E7:C2:31:0A:5A:2D:5D:C3:5D:6B:80:6E:86:D1:66:06: 4F:21:AC:A9:40:E7:1F:CC:FD:D0:9B:C4:D7:F0:56:84:19:07: 1E:D4:28:0F:C9:36:26:D6:D1:9F:25:F6:73:04:DB:9A:31:94: 79:BE:8D:8E:97:05:0E:F8:A7:CD:A7:F8:80:6E:E1:A2:7B:D5: D7:1F:73:8E:D0:C3:2E:F3:D2:EF:87:E0:9A:F8:F3:6B:A6:4D: E3:6C:5A:B7:6E:2A:61:DE:BF:8E:FB:94:D5:DC:40:15:39:70: 43:AA:9B:B1:76:43:BA:7E:52:FD:46:6F:E3:1B:C0:19:09:86: 6E:71:9B:37:BD:A5:B9:0C:E8:66:4E:8E:DF:E0:9B:70:07:48: 15:CD:6F:8E:80:87:56:89:74:17:9D:C3:D5:2A:92:C4:BB:16: D9:09:E7:8A:EB:D0:3B:C4:A8:74:92:92:C3:39:40:3D:8E:62: 7D:A7:B6:22:D9:5D:50:5D:BB:CD:B5:0D:47:D2:F6:C1:D6:FF: FA:18:58:15:A9:52:B1:D3:3C:94:A4:40:4B:15:D1:48:F8:53: E8:A8:3A:35 Subject Public Key Info: Algorithm: RSA Key size: 2048 Exponent: 65537 Modulus: 00:AE:90:97:89:02:4D:49:6F:D7:45:9F:19:8D:4B:F7:30:6B: 5C:DF:FE:2B:D0:E4:85:66:45:2E:2E:98:20:E8:B8:A2:42:29: C1:1A:A1:44:B4:DD:B1:BE:93:45:1F:0E:7A:A6:A9:C1:5B:D6: DD:74:4C:E6:DE:D2:B9:12:5A:8F:33:DE:21:64:08:BE:1B:D5: 1B:C2:2C:07:AB:4D:40:3F:87:C7:60:41:EC:9C:48:35:D0:16: 70:DD:A7:28:26:34:A4:54:E4:55:14:72:2A:0A:39:A8:39:E5: 4A:CA:1F:D9:10:4C:7B:BC:BE:F4:08:64:CE:A0:43:7D:FA:EB: B4:7C:F7:0B:D6:AF:C9:AA:37:B9:9A:10:6F:3D:2F:D7:71:FC: DB:6C:76:E5:9F:25:DC:80:D6:BB:71:E7:9C:31:42:F8:A3:D4: 67:E3:5D:F8:FB:9A:EF:44:E4:E3:C1:8C:00:23:9D:C0:37:76: 23:9D:B5:B3:C4:45:D7:84:C9:10:4D:26:56:CF:6D:AA:F3:10: 34:AC:C4:AC:7B:7A:CA:D1:BC:D6:D6:84:74:AB:42:FB:AE:56: EC:26:09:DF:A1:2B:B1:AD:D5:F7:78:8C:89:0D:B1:5F:A9:D1: 23:63:8E:8E:BF:AE:26:F8:EC:39:8A:4C:45:5C:3B:AB:BE:40: 23:7D:73:F2:A7 X509v3 Subject Alternative Name: Names: IP Address:10.10.10.10 Critical: No |
Генерация сертификата, подписанного CA от RADIUS
После генерации csr клиента нужно подписать его с помощью CA-сертификата от RADIUS сервера.
...
Блок кода | ||||
---|---|---|---|---|
| ||||
wlc-30# sh crypto certificates cert tester.crt Version: 1 Serial: 56:5D:6F:19:3F:AB:17:5A:B5:7A:81:0F:0A:2A:AD:7F:9B:20: 87:41 Subject name: C(countryName): ru ST(stateOrProvinceName): Novosibirsk_oblast L(localityName): 4_floor O(organizationName): ELTEX OU(organizationalUnitName): wireless CN(commonName): tester@wlc.root emailAddress(emailAddress): test@test.com Issuer name: C(countryName): RU ST(stateOrProvinceName): Russia L(localityName): Novosibirsk O(organizationName): Eltex Enterprise Ltd CN(commonName): Eltex default certificate authority Validity period: Valid after: 25.12.2023 09:40:47 Invalid after: 01.12.2123 09:40:47 Signature: Algorithm: sha256WithRSAEncryption Value: B5:8A:92:2A:A8:F0:82:0A:97:0D:D5:D1:5D:33:5F:F3:E2:A1: EE:3D:3D:F6:87:09:D0:4A:1F:E4:43:D8:E8:36:E5:A0:88:E2: 80:80:59:EA:24:57:02:3D:3D:0A:21:4C:9C:FC:D8:88:27:3E: DF:96:75:A5:48:26:64:61:CE:ED:C9:91:AA:F4:10:63:2A:2D: 95:8A:85:7E:55:68:8D:F3:08:F7:F4:08:61:1E:78:D5:51:75: 89:23:E7:B5:49:18:55:E5:57:25:4C:3D:7E:65:73:60:AF:DC: 50:72:2B:69:C8:A7:E7:03:7B:D7:C9:FF:5F:B2:17:3E:F0:71: 46:E0:7F:14:77:00:D1:BB:B3:01:0F:4E:D0:F4:20:06:72:C2: 62:53:D4:4C:84:E1:FD:95:3A:FE:18:77:AE:D8:ED:83:6C:47: 4C:43:41:64:8E:60:38:8F:04:99:97:BE:C3:CB:DB:20:85:90: A9:0E:88:3D:D0:47:65:1D:CB:F5:9B:D9:87:36:9C:9B:CA:02: 43:3F:45:34:F0:82:63:DA:A4:D3:88:07:10:E9:BD:F5:0C:BD: 3C:E1:8A:2B:33:B9:07:F6:32:2A:D7:ED:91:8F:C3:F7:B2:C2: D1:B4:2A:F5:30:56:F2:5D:FF:DC:AC:03:C8:75:BA:D2:3F:3D: 39:BD:59:2F Public key info: Algorithm: RSA Key size: 1024 Exponent: 65537 Modulus: 00:B0:52:66:23:B2:31:DE:EB:9F:44:BF:62:58:86:67:71:F0: 79:A0:77:42:11:75:A3:F3:36:69:47:B5:5A:AD:64:98:9C:D4: 29:E8:5D:89:E0:BB:90:6C:69:19:75:FC:B9:3F:B8:A5:D0:2E: 47:59:A9:59:A1:6A:55:2E:70:3E:B3:AD:A8:FE:9B:33:C6:6C: 90:B7:BD:4F:8D:C3:5C:6F:D5:39:9C:87:A1:54:C6:D2:E6:AC: F1:6A:23:77:36:6F:65:96:41:F5:06:08:EE:EA:C7:4C:C6:DA: F9:CA:9B:C5:69:3D:FF:18:09:8E:C9:E6:FE:3B:68:85:7B:F2: 88:85:01 |
Создание контейнера PKCS #12 с ключом и сертификатами
Формат .p12, также известный как PKCS #12, является стандартным форматом контейнера, который используется для хранения и обмена зашифрованными или подписанными данными. Он может содержать закрытые ключи, сертификаты, цепочки сертификации, а также другую смежную информацию. Рекомендуется использовать именно этот формат, так как формат .p12 поддерживается практически всеми операционными системами, программным обеспечением и устройствами, включая Windows, macOS, Linux, Android и iOS. Контейнеры формата .p12 могут быть защищены паролем, что обеспечивает дополнительный уровень безопасности. Пароль может быть использован для шифрования закрытых ключей и сертификатов, что делает их доступными только авторизованным пользователям. В формате .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)# 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 и указать название файла с сертификатом этого пользователя командой:
...
Блок кода | ||||
---|---|---|---|---|
| ||||
radius-server local nas ap key ascii-text encrypted 8CB5107EA7005AFF network 192.168.1.0/24 exit nas local key ascii-text encrypted 8CB5107EA7005AFF network 127.0.0.1/32 exit domain default exit domain wlc.root user tester password ascii-text encrypted 8CB5107EA7005AFF crypto cert tester.crt exit exit virtual-server default no proxy-mode auth-port 1812 acct-port 1813 enable exit enable tls mode domain crypto private-key default_cert_key.pem crypto cert default_cert.pem crypto ca default_ca.pem exit |
Установка клиентского сертификата
Экспорт сертификата
Для установки сертификата на устройство клиента нужно экспортировать его с wlc. Это можно сделать с помощью команды copy с использованием протоколов ftp, http, https, scp, sftp, tftp, а так же на usb и mmc устройства. Команда передачи контейнера с сертификатом имеет вид:
...
Блок кода | ||||
---|---|---|---|---|
| ||||
wlc-30# copy crypto:pfx/tester.p12 tftp://100.110.1.79:/tester.p12 |******************************************| 100% (2861B) Success! |
Установка сертификата для устройств с Android версии 11 и выше
После того как Вы скопировали содержимое архива на клиентское устройство, зайдите в настройки и выберите пункт "Пароли и безопасность".
...
- Выберите расположение распакованного архива.
- Для загрузки корневого сертификата выберите файл "wireless-ca.crt", затем будет предложено ввести название.
- Далее необходимо загрузить пользовательский сертификат, для этого выберите файл "user.p12", далее введите пароль, указанный в сертификате и название.
Установка сертификата в IOS
Для установки сертификата в IOS, отправьте файлы с сертификатами (*.crt и *.p12) почтой на свой e-mail и откройте его на телефоне. Либо загрузите файлы на свой телефон через usb.
...
Установка пользовательского сертификата происходит аналогично установке корневого сертификата, только необходимо ввести пароль сертификата. Пароль соответствует параметру сертификата Password, который Вы всегда можете посмотреть в файле .txt
...
Установка сертификата в Windows
- Открываем файл .р12. Никакие параметры менять не нужно. Нажимайте "Далее"
...
- Установка пользовательского и корневого сертификата успешно завершена
...
Подключение к SSID с поддержкой TLS
Подключение с Android
В меню Wi-Fi найдите созданный ранее SSID test_enterprise
...
При правильности введенных данных, авторизация пройдет успешно.
...
Подключение с Windows
Перед подключением к сети необходимо создать и настроить новое подключение.
Для этого перейдите в "Центр управления сетями и общим доступом" → "Создание и настройка нового подключения или сети".
...
Если параметры введены верно, подключение пройдет успешно.
Подключение с Ubuntu
Создайте новое подключение к сети:
...
Если все сделано верно, подключение пройдет успешно.
...
Подключение с IOS
В меню настройки Wi-Fi находим нужную сеть. При подключении к сети вводим свой личный логин, выбираем режим EAP-TLS. Нажимаем на пункт удостоверение, ставим галочку на наш сертификат, возвращаемся назад на ввод пароля, жмем подключиться. В появившемся окне жмем кнопку принять.
Обновление и замена серверного сертификата
Существуют команды для обновления дефолтного CA-сертификата и/или сертификата сервера:
...