- Форум
- /
- IT и телекоммуникации
- /
- Конфигурация сетевого оборудования
- /
- Cisco + OpenSSL Windows: установка мульти-доменных сертификатов UCC/SAN (Subject Alternative Name)
Cisco + OpenSSL Windows: установка мульти-доменных сертификатов UCC/SAN (Subject Alternative Name)
Rendering Error in layout Widget/Social: Call to a member function exists() on null. Please enable debug mode for more information.
8 года 5 мес. назад - 8 года 4 мес. назад #115
от TOLLIFi
IT и Телеком: IP-телефония, интернет-технологии, программирование, web-сервисы.
Это сообщение содержит прикрепленные файлы.
COM_KUNENA_MESSAGE_CREATED_NEW
В данной статье будет реализована возможность генерации и импорта мульти-доменных сертификатов с атрибутами Subject-Alternative-Name (SAN) в сетевое оборудование Cisco Systems, с использованием Open-source-утилиты OpenSSL в Windows, один SSL-сертификат на несколько DNS-имен.
Существует ряд причин, почему в некоторых случаях возникает необходимость в использовании сертификата с несколькими доменными именами (UCC сертификат с параметром SAN, Subject-Alternative-Name). Одна из причин (на примере Cisco ASA) при создании VPN-кластера, когда каждый девайс ASA должен содержать имя каждого участника в кластере. Другая причина, когда в сети имеются несколько точек доступа в Интернет (ISP) и необходимо реализовать VPN-подключение для удаленных пользователей (Remote Access VPN), к примеру Cisco AnyConnect, на одном ASA сразу через несколько провайдеров.
Unified Communications Certificate (UCC Certs) позволяет создавать один сертификат, покрывающий до 150 доменов – SAN, к примеру:
www.yourdomain.com
vpn1.yourdomain.com
vpn2.yourdomain.com
vpn3.yourdomain.com
Полезные ссылки:
Generate a Certificate for ISE that Binds to Multiple Names
--- ПОШАГОВАЯ ИНСТРУКЦИЯ ПО СОЗДАНИЮ И ИМПОРТУ СЕРТИФИКАТА UCC/SAN В CISCO >>>
Для получения сертификата UCC создается запрос Certificate Signing request (CSR) с заданными параметрами SAN, которые должны присутствовать в конечном сертификате. С помощью утилит Cisco и в CLI можно создать CSR только для одного домена. И в параметрах Trustpoint возможно задать только одно значение FQDN ( CSCso70867 Bug Details ). Поэтому CSR будет создаваться внешними средствами, а точнее средствами OpenSSL...
1. Для начала нужно будет скачать и установить OpenSSL for Windows здесь (Win32 OpenSSL v1.0.1c.exe), либо см.прикрепленные файлы (путь установки по умолчанию: C:\OpenSSL-Win32\..).
2. В Cisco генерируем RSA-ключи и создаем Trustpoint с получением сертификатов в ручном режиме (через CLI, 'enrollment terminal'). Ключи в дальнейшем будут экспортированы для создания CSR, но экспорт ключей возможен после того, как они будут привязаны к конкретному Trustpoint:
, здесь в качестве FQDN указано некое общее имя vpn.mydomain.com. В дальнейшем, оно будет не так критично при подключениях, т.к. реальные доменные имена SSL будут указаны в поле SAN.
3. Экспортируем Trustpoint с ключом в формате PKCS12 на терминал (в CLI):
, в Windows создаем для удобства отдельную папку и файл в ней 'C:\OpenSSL-Win32\bin\my_cert\trustpoint.file' и копируем в файл строчки от BEGIN до END, включительно.
4. Через командную строку Windows (cmd) необходимо настроить OpenSSL для указания файла конфигурации (openssl.cfg), поскольку по-умолчанию используется несуществующий файл 'openssl.cnf':
, после, можно изменить максимальную длину пароля, указываемого при запросе сертификата: в openssl.cfg изменяем значение параметра 'challengePassword_max = 40' (необходимо в том случае, если CA используются enrollments challenge password большой длины; если он вообще используется при ручном запросе через Web-интерфейс
).
5. Далее в OpenSSL конвертируем base64-формат содержимого файла 'trustpoint.file' в формат PEM:
, последняя команда запросит ввести пароль, которым был защищен экспортированный MY-TRUSTPOINT (PaSsWoRd). После чего будет выведена информация, в том числе закрытый ключ. Его необходимо скопировать в текстовый документ, для удобства переименуем и сохраним его как: ..\my_cert\private.key.
6. Теперь, получив закрытый ключ, создается CSR, все также с помощью OpenSSL. Но в интерактивном режиме командной строки OpenSSL не предложит ввести значения параметра SAN. Этот параметр необходимо вручную создать/изменить в файле конфигурации openssl.cfg. Добавляем/изменяем поля аналогично как в примере:
, здесь в секции 'alt_names' указываются все домены (SANs), которые должны присутствовать в CSR.
7. Генерация файла запроса CSR:
, проверить правильность сформированного запроса можно, выполнив команду:
8. Запрос сертификата в ручном режиме посредством Web-интерфейса CA (к примеру, CA расположен на сервере MYCA.GL, где запущена служба/роль IIS и web-enrollment). В браузере:
, проверяем статус сертификата, скачиваем и сохраняем в '..my_cert\certnew.cer'.
9. Импорт сертификата в Cisco:
, далее копируем все содержимое файла 'certnew.cer' в CLI Cisco. Таким образом получен сертификат Cisco с параметром SAN, с альтернативными доменными именами.
10. Аутентификация самого сервера выдачи сертификата CA:
, далее копируем содержание Self-Signed сертификата сервера CA, т.е. сертификат самого MYCA.GL.
Теперь в папке 'C:\OpenSSL-Win32\bin\my_cert' хранятся все промежуточные итоги: закрытый ключ, сертификаты и пр., которые можно повторно использовать, не выполняя все вышеописанные шаги, либо удалить для безопасности.
Существует ряд причин, почему в некоторых случаях возникает необходимость в использовании сертификата с несколькими доменными именами (UCC сертификат с параметром SAN, Subject-Alternative-Name). Одна из причин (на примере Cisco ASA) при создании VPN-кластера, когда каждый девайс ASA должен содержать имя каждого участника в кластере. Другая причина, когда в сети имеются несколько точек доступа в Интернет (ISP) и необходимо реализовать VPN-подключение для удаленных пользователей (Remote Access VPN), к примеру Cisco AnyConnect, на одном ASA сразу через несколько провайдеров.
Unified Communications Certificate (UCC Certs) позволяет создавать один сертификат, покрывающий до 150 доменов – SAN, к примеру:
www.yourdomain.com
vpn1.yourdomain.com
vpn2.yourdomain.com
vpn3.yourdomain.com
Полезные ссылки:
Generate a Certificate for ISE that Binds to Multiple Names
--- ПОШАГОВАЯ ИНСТРУКЦИЯ ПО СОЗДАНИЮ И ИМПОРТУ СЕРТИФИКАТА UCC/SAN В CISCO >>>
ВНИМАНИЕ: Спойлер!
[ Нажмите, чтобы развернуть ]
[ Нажмите, чтобы скрыть ]
Для получения сертификата UCC создается запрос Certificate Signing request (CSR) с заданными параметрами SAN, которые должны присутствовать в конечном сертификате. С помощью утилит Cisco и в CLI можно создать CSR только для одного домена. И в параметрах Trustpoint возможно задать только одно значение FQDN ( CSCso70867 Bug Details ). Поэтому CSR будет создаваться внешними средствами, а точнее средствами OpenSSL...
1. Для начала нужно будет скачать и установить OpenSSL for Windows здесь (Win32 OpenSSL v1.0.1c.exe), либо см.прикрепленные файлы (путь установки по умолчанию: C:\OpenSSL-Win32\..).
2. В Cisco генерируем RSA-ключи и создаем Trustpoint с получением сертификатов в ручном режиме (через CLI, 'enrollment terminal'). Ключи в дальнейшем будут экспортированы для создания CSR, но экспорт ключей возможен после того, как они будут привязаны к конкретному Trustpoint:
VPN-GW(config)# crypto key generate rsa label MY-KEYS modulus 2048
...
!
crypto ca trustpoint MY-TRUSTPOINT
enrollment terminal
fqdn vpn.mydomain.com
keypair MY-KEYS
!
3. Экспортируем Trustpoint с ключом в формате PKCS12 на терминал (в CLI):
VPN-GW(config)# crypto ca export MY-TRUSTPOINT pkcs12 PaSsWoRd
Exported pkcs12 follows:
-----BEGIN PKCS12-----
MIINrwIBAzCCDWkGCSqGSIb3DQEHAaCCDVoEgg1WMIINUjCCDU4GCSqGSIb3DQEH
9REW3r1BeyU5MUQplblLK3GQPbItrkTsZrpVR45Nhpsbe7Q18y0TibFMIVsZ2EZC
...
kUJYLZbXBB86rAPqmLad+0Z6NBIE1avYgn+rwehTniBAIfWAMD0wITAJBgUrDgMC
GgUABBQV8iAC2bfNRJGyOV8/ng6NUHwYCQQU9aR41+yKGI5BGHWt76cDNJ7FnwYC
AgQA
-----END PKCS12-----
4. Через командную строку Windows (cmd) необходимо настроить OpenSSL для указания файла конфигурации (openssl.cfg), поскольку по-умолчанию используется несуществующий файл 'openssl.cnf':
cd C:\OpenSSL-Win32\bin
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg

5. Далее в OpenSSL конвертируем base64-формат содержимого файла 'trustpoint.file' в формат PEM:
openssl base64 -in my_cert\trustpoint.file -d -out my_cert\trustpoint.pfx
openssl pkcs12 -in my_cert\trustpoint.pfx -info
6. Теперь, получив закрытый ключ, создается CSR, все также с помощью OpenSSL. Но в интерактивном режиме командной строки OpenSSL не предложит ввести значения параметра SAN. Этот параметр необходимо вручную создать/изменить в файле конфигурации openssl.cfg. Добавляем/изменяем поля аналогично как в примере:
[ req ]
req_extensions = v3_req
[ v3_req ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = vpn.mydomain.com
DNS.2 = vpn1.mydomain.com
DNS.3 = vpn2.mydomain.com
7. Генерация файла запроса CSR:
openssl req -new -out my_cert\cert.csr -key my_cert\private.key
openssl req -text -noout -in my_cert\cert.csr
http://MYCA.GL/certsrv -> Request certificate -> Advanced -> копируем содержимое файла my_cert\cert.csr (без строк BEGIN и END) в соответствующее поле -> Submit
9. Импорт сертификата в Cisco:
VPN-GW(config)# crypto ca import MY-TRUSTPOINT certificate
10. Аутентификация самого сервера выдачи сертификата CA:
VPN-GW(config)# crypto ca authenticate MY-TRUSTPOINT
Теперь в папке 'C:\OpenSSL-Win32\bin\my_cert' хранятся все промежуточные итоги: закрытый ключ, сертификаты и пр., которые можно повторно использовать, не выполняя все вышеописанные шаги, либо удалить для безопасности.
IT и Телеком: IP-телефония, интернет-технологии, программирование, web-сервисы.
Это сообщение содержит прикрепленные файлы.
Пожалуйста, войдите или зарегистрируйтесь, чтобы увидеть их.
Last edit: 8 года 4 мес. назад by TOLLIFi.
Спасибо сказали: PNV
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
6 года 7 мес. назад - 6 года 7 мес. назад #189
от PNV
COM_KUNENA_MESSAGE_REPLIED_NEW
Применяем SSL на интерфейс:
ASA(config)# ssl trust-point MY-TRUSTPOINT Outside
Last edit: 6 года 7 мес. назад by PNV.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
6 года 1 мес. назад - 6 года 1 мес. назад #199
от PNV
COM_KUNENA_MESSAGE_REPLIED_NEW
1) Бывают случаи, когда нужно убрать пароль с закрытого ключа, чтобы при перезапуске сервиса (например nginx, apache) этот пароль не запрашивался Удалить пароль можно также при помощи OpenSSL следующим образом:
При данной операции будет запрошен пароль для исходного запароленного ключа.
2) Для смены пароля на ключ используется следующая команда:При данной операции будет запрошен старый пароль, а потом новый пароль с подтверждением.
При всех операциях по смене и удалении паролей, сами закрытые ключи остаются абсолютно идентичными.
Для RSA ключей:
openssl rsa -in /etc/ssl/private/example.key -out /etc/ssl/private/example.nocrypt.key
Для DSA ключей:
openssl dsa -in example.key -out example.nocrypt.key
При данной операции будет запрошен пароль для исходного запароленного ключа.
2) Для смены пароля на ключ используется следующая команда:
openssl rsa -in example_old.key -out example_new.key -des3
При всех операциях по смене и удалении паролей, сами закрытые ключи остаются абсолютно идентичными.
Last edit: 6 года 1 мес. назад by PNV.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Вы здесь:
-
Главная
-
Форум
-
IT и телекоммуникации
-
Конфигурация сетевого оборудования
- Cisco + OpenSSL Windows: установка мульти-доменных сертификатов UCC/SAN (Subject Alternative Name)