Криптопрофили (crypto profile) используются для настройки параметров безопасности, шифрования и аутентификации сигнального (SIP), медиа-трафика (RTP), проксировании https-трафика.
При использовании протоколов TLS или WebSocket Secure (WSS) в качестве SIP-транспорта, а также протокола DTLS-SRTP для шифрования RTP-трафика, возможно использование сертификатов, автоматически сгенерированных самим ESBC, сгенерированных по требованию пользователя на ESBC или загруженных пользователем. По умолчанию используются сертификаты, автоматически сгенерированные самим ESBC, дополнительных настроек для их использования не требуется.
Для генерации сертификатов и ключей средствами ESBC используется команда crypto generate. Подробное описание команд для генерации сертификатов и ключей на ESBC приведено в разделе Управление ключами и сертификатами.
Для загрузки сертификатов и ключей на устройство через CLI используется команда copy. Пример команды для копирования через протокол tftp:
vesbc# copy tftp://10.0.0.1:/ca.crt crypto:cert/ca.crt |
Путь для сохранения сертификатов ca и cert — crypto:cert/ Путь для сохранения private-key — crypto:private-key/ |
Для управления пользовательскими сертификатами и версией TLS используется crypto profile.
Описание всех команд для настройки криптопрофилей приведено в разделе Настройки криптопрофиля.
Пример настройки crypto profile:
vesbc# vesbc# configure vesbc(config)# esbc vesbc(config-esbc)# crypto profile CRYPTO-PROFILE #Установка сертификата удостоверяющего центра (CA certificate): vesbc(config-esbc-crypto-profile)# ca default_ca.pem #Установка клиентского сертификата (X.509): vesbc(config-esbc-crypto-profile)# cert default_cert.pem #Установка private-key: vesbc(config-esbc-crypto-profile)# private-key default_cert_key.pem #Установка пароля private-key (необязательно): vesbc(config-esbc-crypto-profile)# password private-key PASSWORD #Установка минимальной и максимальной версии TLS (необязательно): vesbc(config-esbc-crypto-profile)# tls min 1.1 vesbc(config-esbc-crypto-profile)# tls max 1.2 vesbc(config-esbc-crypto-profile)# exit |
Если не устанавливать значения версии TLC, то при установлении соединения будет использоваться любая версия 1.0–1.3. Настройки tls min и tls max используются только при применении crypto profile для SIP-транспорта и проксировании https-трафика, и не используются для шифрования DTLS-SRTP при использовании crypto-profile в медиапрофиле. |
Для того чтобы использовать crypto profile для SIP-транспорта, необходимо его указать в настройках нужного транспорта:
vesbc(config-esbc)# sip transport SIP-TRANSPORT vesbc(config-esbc-sip-transport)# crypto profile CRYPTO-PROFILE vesbc(config-esbc-sip-transport)# exit |
Настройки crypto profile будут использоваться, только если выбран режим работы SIP-транспорта tls или wss, для остальных режимов настройки игнорируются.
Для того чтобы использовать crypto profile для шифрования DTLS-SRTP, необходимо его указать в настройках медиа профиля:
vesbc(config-esbc)# media profile MEDIA-PROFILE vesbc(config-esbc-media-profile)# crypto profile CRYPTO-PROFILE vesbc(config-esbc-media-profile)# exit |
Настройки crypto profile будут использоваться, только если выбран режим шифрования srtp keying dtls-srtp, для остальных режимов настройки игнорируются.
Пример использования crypto profile:
Задача:
Использовать сертификат, загруженный пользователем на ESBC, для абонентских подключений по tls версии 1.3 и шифрования медиа DTLS-SRTP.

Решение:
1. Выполнить базовую настройку ESBC для обеспечения маршрутизации абонентских подключений в сторону ECSS-10:
vesbc(config)# esbc vesbc(config-esbc)# media resource USERS vesbc(config-esbc-media-resource)# ip address 20.0.0.1 vesbc(config-esbc-media-resource)# exit vesbc(config-esbc)# media resource ECSS vesbc(config-esbc-media-resource)# ip address 192.168.1.1 vesbc(config-esbc-media-resource)# exit vesbc(config-esbc)# sip transport USERS vesbc(config-esbc-sip-transport)# ip address 20.0.0.1 vesbc(config-esbc-sip-transport)# port 5061 vesbc(config-esbc-sip-transport)# mode tls vesbc(config-esbc-sip-transport)# exit vesbc(config-esbc)# sip transport ECSS vesbc(config-esbc-sip-transport)# ip address 192.168.1.1 vesbc(config-esbc-sip-transport)# port 5070 vesbc(config-esbc-sip-transport)# exit vesbc(config-esbc)# route-table TO_ECSS vesbc(config-esbc-route-table)# rule 0 vesbc(config-esbc-route-table-rule)# action direct-to-trunk ECSS vesbc(config-esbc-route-table-rule)# exit vesbc(config-esbc-route-table)# exit vesbc(config-esbc)# trunk sip ECSS vesbc(config-esbc-trunk-sip)# sip transport ECSS vesbc(config-esbc-trunk-sip)# media resource 0 ECSS vesbc(config-esbc-trunk-sip)# remote address 192.168.1.2 vesbc(config-esbc-trunk-sip)# remote port 5070 vesbc(config-esbc-trunk-sip)# exit vesbc(config-esbc)# user-interface sip USERS vesbc(config-esbc-user-interface-sip)# sip transport USERS vesbc(config-esbc-user-interface-sip)# route-table TO_ECSS vesbc(config-esbc-user-interface-sip)# media resource 0 USERS vesbc(config-esbc-user-interface-sip)# exit |
2. Загрузить файлы сертификата, CA и private-key на ESBC через CLI (в примере указан протокол tftp):
#Загрузка CA сертификата: vesbc# copy tftp://10.0.0.1:/ca.crt crypto:cert/ca.crt #Загрузка клиентского сертификата: vesbc# copy tftp://10.0.0.1:/cert.crt crypto:cert/cert.crt #Загрузка private-key: vesbc# copy tftp://10.0.0.1:/key.pem crypto:private-key/key.pem |
3. Создать crypto profile, указать в нем файлы сертификатов, private-key и версию TLS:
vesbc(config-esbc)# crypto profile CRYPTO_PROFILE vesbc(config-esbc-crypto-profile)# ca ca.crt vesbc(config-esbc-crypto-profile)# cert cert.crt vesbc(config-esbc-crypto-profile)# private-key key.pem vesbc(config-esbc-crypto-profile)# tls min 1.3 vesbc(config-esbc-crypto-profile)# tls max 1.3 vesbc(config-esbc-crypto-profile)# exit |
4. Создать медиапрофиль для использования DTLS-SRTP и привязать к нему crypto profile:
vesbc(config-esbc)# media profile MP_USERS vesbc(config-esbc-media-profile)# srtp mode mandatory vesbc(config-esbc-media-profile)# srtp keying dtls-srtp vesbc(config-esbc-media-profile)# crypto profile CRYPTO_PROFILE vesbc(config-esbc-media-profile)# exit |
5. Привязать media profile MP_USERS к user-interface sip USERS:
vesbc(config-esbc)# user-interface sip USERS vesbc(config-esbc-user-interface-sip)# media profile MP_USERS vesbc(config-esbc-user-interface-sip)# exit |
6. Привязать crypto profile CRYPTO_PROFILE к sip transport USERS:
vesbc(config-esbc)# sip transport USERS vesbc(config-esbc-sip-transport)# crypto profile CRYPTO_PROFILE vesbc(config-esbc-sip-transport)# exit |
7. Применить настройки:
vesbc(config-esbc)# do commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. vesbc(config-esbc)# do confirm Configuration has been confirmed. Commit timer canceled. |
Инфраструктура открытых ключей (Public Key Infrastructure, PKI) – комплекс средств, мер и политик, обеспечивающих работу систем на базе алгоритмов шифрования с открытым ключом.
К участникам PKI обычно относятся:
В процессе взаимодействия участников PKI появляются и используются следующие объекты:
Схематично основные процедуры в инфраструктуре открытых ключей можно описать следующим образом:

Сервисные маршрутизаторы ESR могут принимать участие в структуре PKI в качестве корневого удостоверяющего центра и клиента PKI. Перед развертыванием инфраструктуры PKI крайне важно её спланировать для обеспечения безопасности и стабильной работы.
Основные рекомендации по планированию инфраструктуры открытых ключей:
Базовый вариант настройки PKI-сервера – корневой удостоверяющий центр, работающий на самоподписанных сертификатах, который напрямую обслуживает запросы конечных клиентов.
Изменение отличительного имени сертификата удостоверяющего центра приводит к перегенерации приватного ключа и сертификата PKI-сервера и очистке базы выписанных сертификатов. Требуется заранее, на этапе планирования структуры PKI, определиться с идентификацией владельца удостоверяющего центра и после ввода удостоверяющего центра в эксплуатацию не менять эти настройки. |
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Настроить NTP-клиент согласно разделу Алгоритм настойки NTP. Маршрутизатор должен получать точное время от NTP-сервера или NTP-пира, либо доверять локально настроенному времени с включенным режимом NTP Master. |
| |
| 2 | Перейти в режим настройки PKI-клиента, который будет использоваться в настройках PKI-сервера как источник самоподписанных сертификатов. | esr(config)# crypto pki trustpoint <TRUSTPOINT> | <TRUSTPOINT> – имя PKI-клиента, задаётся строкой от 1 до 31 символа. |
| 3 | Перейти в режим настройки отличительного имени сертификата – набора атрибутов, уникально описывающих удостоверяющий центр. | esr(config-trustpoint)# subject-name | |
| 4 | Указать код страны (необязательно). | esr(config-trustpoint-subject-name)# country <COUNTRY> | <COUNTRY> – код страны, задаётся строкой длиной 2 символа. Рекомендуется использовать двухбуквенные обозначения стран "alpha-2" из стандарта ISO 3166-1. |
| 5 | Указать название штата, области или провинции (необязательно). | esr(config-trustpoint-subject-name)# state <STATE> | <STATE> – название штата, области или провинции, задаётся строкой от 1 до 128 символов. |
| 6 | Указать название населенного пункта или его территориальной единицы (необязательно). | esr(config-trustpoint-subject-name)# locality <LOCATION> | <LOCATION> – название населенного пункта или его территориальной единицы, задаётся строкой от 1 до 128 символов. |
| 7 | Указать название организации (необязательно). | esr(config-trustpoint-subject-name)# organization <ORGANIZATION> | <ORGANIZATION> – название организации, задаётся строкой от 1 до 64 символов. |
| 8 | Указать подразделение организации (необязательно). | esr(config-trustpoint-subject-name)# organization-unit <ORGANIZATION-UNIT> | <ORGANIZATION-UNIT> – название подразделения организации, задаётся строкой от 1 до 64 символов. |
| 9 | Указать общее имя сертификата. | esr(config-trustpoint-subject-name)# common-name <COMMON-NAME> | <COMMON-NAME> – общее имя, задаётся строкой от 1 до 64 символов. Как правило в качестве общего имени сертификата удостоверяющего центра используется имя домена, который обслуживает удостоверяющий центр или юридическое название удостоверяющего центра. |
| 10 | Перейти в режим настройки альтернативных имен сертификата (необязательно). | esr(config-trustpoint)# subject-alt-name | |
| 11 | Указать IP-адрес в качестве альтернативного имени сертификата (необязательно). | esr(config-trustpoint-san)# ipv4 <ADDR> | <ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
| esr(config-trustpoint-san)# ipv6 <IPV6-ADDR> | <IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. | ||
| 12 | Указать полное доменное имя хоста в качестве альтернативного имени сертификата (необязательно). | esr(config-trustpoint-san)# dns <NAME> | <NAME> – полное доменное имя хоста (FQDN), задается строкой от 1 до 235 символов. Пример записи доменного имени – router.example.loc. |
| 13 | Указать адрес электронной почты в качестве альтернативного имени сертификата (необязательно). | esr(config-trustpoint-san)# email <EMAIL> | <EMAIL> – адрес электронной почты, задается строкой от 6 до 254 символов. Пример записи электронной почты – router@example.loc. |
| 14 | Перейти в режим настройки механизма выпуска сертификата. Для PKI-клиента, выпускающего самоподписанные сертификаты укажем тип "selfsigned". | esr(config-trustpoint)# enrollment selfsigned | |
| 15 | Указать время жизни самоподписанных сертификатов (необязательно). | esr(config-trustpoint-enrollment-selfsigned)# lifetime <DAYS> | <DAYS> – количество дней, принимает значения в диапазоне [1..3650]. Значение по умолчанию: 3650. |
| 16 | Указать назначение генерируемых сертификатов. Для PKI-клиента, используемого в настройках PKI-сервера в качестве источника самоподписанных сертификатов необходимо указать значение "root-ca". | esr(config-trustpoint)# usage root-ca | |
| 17 | Указать экземпляр VRF, в котором будет работать PKI-клиент (необязательно). Если планируется работа PKI-сервера в определенном VRF, PKI-клиент с самоподписанными сертификатами также требуется вынести в этот VRF. | esr(config-trustpoint)# ip vrf forwarding <VRF> | <VRF> – имя VRF, задается строкой до 31 символа. |
| 18 | Включить PKI-клиент. | esr(config-trustpoint)# enable | |
| 19 | Перейти в режим настройки PKI-сервера. | esr(config)# crypto pki server | |
| 20 | Указать имя раннее настроенного PKI-клиента, который будет использоваться в настройках PKI-сервера как источник самоподписанных сертификатов. | esr(config-pki-server)# trustpoint <TRUSTPOINT> | <TRUSTPOINT> – имя PKI-клиента, задаётся строкой от 1 до 31 символа. |
| 21 | Указать экземпляр VRF, в котором будет работать PKI-сервер (необязательно). | esr(config-pki-server)# ip vrf forwarding <VRF> | <VRF> – имя VRF, задается строкой до 31 символа. |
| 22 | Указать IP-адрес или сетевой интерфейс, который будет будет прослушиваться PKI-сервером для обработки входящих запросов (необязательно). В случае, если настройка не будет указана PKI-сервер будет принимать запросы на всех настроенных IP-интерфейсах маршрутизатора. | esr(config-pki-server)# source-address <ADDR> | <ADDR> – IP-адрес, назначенный на локальном сетевом интерфейсе маршрутизатора, на котором PKI-сервер будет слушать входящие подключения, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
| esr(config-pki-server)# source-interface <IF> | <IF> – интерфейс или туннель, на котором PKI-сервер будет слушать входящие подключения. | ||
| 23 | Указать challenge-password, который будет использован для аутентификации PKI-клиентов (необязательно). | esr(config-pki-server)# challenge-password { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> } | <CLEAR-TEXT> – пароль, задаётся строкой от 8 до 32 символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 32 байт (от 16 до 64 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). |
| 24 | Указать время жизни выписываемых клиентам сертификатов в днях (необязательно). | esr(config-pki-server)# lifetime <DAYS> | <DAYS> – количество дней, принимает значения в диапазоне [1..3650]. Значение по умолчанию: 365. |
| 25 | Включить PKI-сервер. | esr(config-pki-server)# enable |
Настроить на маршрутизаторе PKI-сервер в роли корневого удостоверяющего центра. Время жизни сертификата удостоверяющего центра должно быть ограничено одним годом, а время жизни клиентских сертификатов должно быть ограничено двумя неделями.

В качестве начальной конфигурации на маршрутизаторе уже настроен сетевой интерфейс в сторону Интернет-провайдера, прописан шлюз по умолчанию и настроена зона безопасности. Шлюз Интернет-провайдера также может служить источником синхронизации времени по протоколу NTP.
hostname ESR.CA security zone WAN exit interface gigabitethernet 1/0/1.103 security-zone WAN ip address 10.0.103.2/30 exit ip route 0.0.0.0/0 10.0.103.1 |
Настроим NTP-клиент на получение точного времени от шлюза Интернет-провайдера:
ESR.CA(config)# ntp enable ESR.CA(config)# ntp server 10.0.103.1 ESR.CA(config-ntp-server)# exit ESR.CA(config)# |
Применим конфигурацию на маршрутизаторе и дождемся успешной синхронизации времени по протоколу NTP:
Если произвести настройку подключения к NTP-серверу одновременно с настройкой PKI-сервера, сгенерированные на этапе запуска PKI-сервера служебные файлы и сертификаты могут содержать некорректные дату и время, что приведет к ошибкам в дальнейшей работе инфраструктуры PKI. |
ESR.CA(config)# end
Warning: you have uncommitted configuration changes.
ESR.CA# commit
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
ESR.CA# confirm
Configuration has been confirmed. Commit timer canceled.
ESR.CA#
ESR.CA# sh ntp peers
Clock is synchronized, stratum 6, reference is 10.0.103.1
remote vrf refid st t when poll reach delay offset jitter
- ---------------------------------------------- ---------- --------------- -- - ---- ---- ----- -------- -------- --------
* 10.0.103.1 127.127.1.0 5 u 16 64 37 0.601 8.533 0.019
ESR.CA# |
Перейдем к настройке PKI-клиента, который будет использоваться в качестве источника самоподписанных сертификатов для PKI-сервера:
ESR.CA(config)# crypto pki trustpoint ROOT_CA ESR.CA(config-trustpoint)# |
Перейдем в раздел настройки отличительного имени сертификата удостоверяющего центра. Настроим те атрибуты, которые позволят однозначно идентифицировать удостоверяющий центр:
ESR.CA(config-trustpoint)# subject-name ESR.CA(config-trustpoint-subject-name)# country RU ESR.CA(config-trustpoint-subject-name)# state Moscow ESR.CA(config-trustpoint-subject-name)# locality Moscow ESR.CA(config-trustpoint-subject-name)# organization Company ESR.CA(config-trustpoint-subject-name)# common-name ca.company.loc ESR.CA(config-trustpoint-subject-name)# exit ESR.CA(config-trustpoint)# |
Перейдем в раздел настройки альтернативных имен сертификата. Укажем в качестве альтернативных имен IP-адрес и полное доменное имя:
ESR.CA(config-trustpoint)# subject-alt-name ESR.CA(config-trustpoint-san)# ipv4 10.0.103.2 ESR.CA(config-trustpoint-san)# dns ca.company.loc ESR.CA(config-trustpoint-san)# exit ESR.CA(config-trustpoint)# |
Перейдем в режим настройки механизма выпуска сертификата. Для PKI-клиента, выпускающего самоподписанные сертификаты, укажем тип "selfsigned". В нем настроим время жизни самоподписанных сертификатов:
ESR.CA(config-trustpoint)# enrollment selfsigned ESR.CA(config-trustpoint-enrollment-selfsigned)# lifetime 365 ESR.CA(config-trustpoint-enrollment-selfsigned)# exit ESR.CA(config-trustpoint)# |
Укажем назначение генерируемых сертификатов. Для PKI-клиента, используемого в настройках PKI-сервера, в качестве источника самоподписанных сертификатов необходимо указать значение "root-ca":
ESR.CA(config-trustpoint)# usage root-ca ESR.CA(config-trustpoint)# |
Включим PKI-клиент:
ESR.CA(config-trustpoint)# enable ESR.CA(config-trustpoint)# exit ESR.CA(config)# |
Перейдем к настройке PKI-сервера:
ESR.CA(config)# crypto pki server ESR.CA(config-pki-server)# |
Укажем имя ранее настроенного PKI-клиента, который будет использоваться в настройках PKI-сервера как источник самоподписанных сертификатов:
ESR.CA(config-pki-server)# trustpoint ROOT_CA ESR.CA(config-pki-server)# |
Привяжем PKI-сервер к адресу сетевого интерфейса, смотрящего в сторону Интернет-провайдера:
ESR.CA(config-pki-server)# source-interface gi 1/0/1.103 ESR.CA(config-pki-server)# |
Зададим challenge-password, для корректного обращения к удостоверяющему центру PKI-клиенты должны использовать правильный challenge-password.
ESR.CA(config-pki-server)# challenge-password StR0nnGP+ss ESR.CA(config-pki-server)# |
Включим PKI-сервер:
ESR.CA(config-pki-server)# enable ESR.CA(config-pki-server)# exit ESR.CA(config)# |
Добавим пару зон безопасности и правило, разрешающее прохождение входящего на PKI-сервер трафика:
ESR.CA(config)# security zone-pair WAN self ESR.CA(config-security-zone-pair)# rule 10 ESR.CA(config-security-zone-pair-rule)# description "Allow access to PKI-server from WAN" ESR.CA(config-security-zone-pair-rule)# match protocol tcp ESR.CA(config-security-zone-pair-rule)# match destination-port port-range 80 ESR.CA(config-security-zone-pair-rule)# match destination-address address-range 10.0.103.2 ESR.CA(config-security-zone-pair-rule)# action permit ESR.CA(config-security-zone-pair-rule)# enable ESR.CA(config-security-zone-pair-rule)# exit ESR.CA(config-security-zone-pair)# exit ESR.CA(config)# |
Применим конфигурацию на маршрутизаторе:
ESR.CA(config)# end Warning: you have uncommitted configuration changes. ESR.CA# commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. ESR.CA# confirm Configuration has been confirmed. Commit timer canceled. ESR.CA# |
В результате получим запущенный корневой удостоверяющий центр, готовый к обслуживанию клиентских запросов.
В команде show crypto pki trustpoints можно увидеть PKI-клиент ROOT_CA, готовый к работе, а добавив его имя в конце команды, можно более подробно рассмотреть его текущий статус:
ESR.CA# show crypto pki trustpoints
Name Enrollment Usage Subject name Status Next action
--------------- ---------- ------- ------------------------------ ------------------ --------------------
ROOT_CA selfsigned root-ca CN=ca.company.loc/O=Company/L= Ready 2026-12-17 08:59:16
Moscow/ST=Moscow/C=RU
ESR.CA# show crypto pki trustpoints ROOT_CA
Name: ROOT_CA
Usage: root-ca
Subject name: CN=ca.company.loc/O=Company/L=Moscow/ST=Moscow/C=RU
Enrollment: selfsigned
Status: Ready
Renew date: 2026-12-17 08:59:16
CRL: Inactive
ESR.CA# |
В команде show crypto pki server можно увидеть fingerprint сертификата удостоверяющего центра, который необходимо использовать в клиентах PKI совместно с установленным challenge-password для корректной авторизации:
ESR.CA# show crypto pki server Status: Enabled Associated trustpoint: ROOT_CA Lifetime days: 14 Certificate fingerprint: A2:0C:10:C7:0E:06:3A:2F:EE:5F:C2:72:39:36:31:0A Source: 10.0.103.2 Last issued serial number: -- Challenge password: Active Shadow: Inactive ESR.CA# |
Изменение отличительного имени клиентского сертификата или URL подключения к PKI-серверу приводит к немедленному перезапросу нового сертификата у удостоверяющего центра. |
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Перейти в режим настройки PKI-клиента. | esr(config)# crypto pki trustpoint <TRUSTPOINT> | <TRUSTPOINT> – имя PKI-клиента, задаётся строкой от 1 до 31 символа. |
| 2 | Перейти в режим настройки отличительного имени сертификата – набора атрибутов, уникально описывающих владельца сертификата. | esr(config-trustpoint)# subject-name | |
| 3 | Указать код страны (необязательно). | esr(config-trustpoint-subject-name)# country <COUNTRY> | <COUNTRY> – код страны, задаётся строкой длиной 2 символа. Рекомендуется использовать двухбуквенные обозначения стран "alpha-2" из стандарта ISO 3166-1. |
| 4 | Указать название штата, области или провинции (необязательно). | esr(config-trustpoint-subject-name)# state <STATE> | <STATE> – название штата, области или провинции, задаётся строкой от 1 до 128 символов. |
| 5 | Указать название населенного пункта или его территориальной единицы (необязательно). | esr(config-trustpoint-subject-name)# locality <LOCATION> | <LOCATION> – название населенного пункта или его территориальной единицы, задаётся строкой от 1 до 128 символов. |
| 6 | Указать название организации (необязательно). | esr(config-server-subject-name)# organization <ORGANIZATION> | <ORGANIZATION> – название организации, задаётся строкой от 1 до 64 символов. |
| 7 | Указать подразделение организации (необязательно). | esr(config-trustpoint-subject-name)# organization-unit <ORGANIZATION-UNIT> | <ORGANIZATION-UNIT> – название подразделения организации, задаётся строкой от 1 до 64 символов. |
| 8 | Указать общее имя сертификата. | esr(config-trustpoint-subject-name)# common-name <COMMON-NAME> | <COMMON-NAME> – общее имя, задаётся строкой от 1 до 64 символов. Как правило в качестве общего имени клиентского сертификата используется полное доменное имя хоста, который использует данный клиентский сертификат или ФИО пользователя, использующего клиентский сертификат. |
| 11 | Перейти в режим настройки альтернативных имен сертификата (необязательно). | esr(config-trustpoint)# subject-alt-name | |
| 12 | Указать IP-адрес в качестве альтернативного имени сертификата (необязательно). | esr(config-trustpoint-san)# ipv4 <ADDR> | <ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
| esr(config-trustpoint-san)# ipv6 <IPV6-ADDR> | <IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. | ||
| 13 | Указать полное доменное имя хоста в качестве альтернативного имени сертификата (необязательно). | esr(config-trustpoint-san)# dns <NAME> | <NAME> – полное доменное имя хоста (FQDN), задается строкой от 1 до 235 символов. Пример записи доменного имени – router.example.loc. |
| 14 | Указать адрес электронной почты в качестве альтернативного имени сертификата (необязательно). | esr(config-trustpoint-san)# email <EMAIL> | <EMAIL> – адрес электронной почты, задается строкой от 6 до 254 символов. Пример записи электронной почты – router@example.loc. |
| 14 | Перейти в режим настройки механизма выпуска сертификата. Для PKI-клиента, выпускающего сертификаты от вышестоящего удостоверяющего центра по протоколу SCEP необходимо указать значение "scep". | esr(config-trustpoint)# enrollment scep | |
| 15 | Указать URL для подключения к PKI-серверу. | esr(config-trustpoint-enrollment-scep)# url <URL> | <URL> – URL для подключения к PKI-серверу, задается в виде "http:// <ADDR>[:<PORT>]/", где:
В случае если PKI-сервер расположен на том же маршрутизаторе, на котором настраивается PKI-клиент необходимо указать в URL любой из IP-интерфейсов, которые слушает PKI-сервер. |
| 16 | Указать цифровой отпечаток сертификата PKI-сервера, к которому выполняется подключение. | esr(config-trustpoint-enrollment-scep)# fingerprint <FINGERPRINT> | <FINGERPRINT> – значение цифровой отпечаток сертификата, полученного при помощи алгоритма MD5. Имеет размер 16 байт и задается в виде HEX-строки длиной 32 символа без разделителей (YYYY...) или 47 символов с двоеточием в роли разделителя (YY:YY:YY...). |
| 17 | Указать challenge-password, который будет использован для аутентификации на PKI-сервере (необязательно). | esr(config-trustpoint-enrollment-scep)# challenge-password { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> } | <CLEAR-TEXT> – пароль, задаётся строкой от 8 до 32 символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 32 байт (от 16 до 64 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). |
| 16 | Указать назначение генерируемых сертификатов. Для PKI-клиента, используемого в качестве источника ключевой информации в IPsec-туннелях, необходимо указать значение "ipsec". | esr(config-trustpoint)# usage ipsec | |
| 9 | Указать экземпляр VRF, в котором будет работать PKI-клиент (необязательно). | esr(config-trustpoint)# ip vrf forwarding <VRF> | <VRF> – имя VRF, задается строкой до 31 символа. |
| 10 | Указать IP-адрес или сетевой интерфейс, с которого PKI-клиент будет выполнять запросы к удостоверяющему центру (необязательно). | esr(config-trustpoint)# source-address <ADDR> | <ADDR> – IP-адрес, назначенный на локальном сетевом интерфейсе маршрутизатора, с которого PKI-клиент будет выполнять запросы, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
| esr(config-trustpoint)# source-interface <IF> | <IF> – интерфейс или туннель, с которого PKI-клиент будет выполнять запросы. | ||
| 18 | Включить PKI-клиент. | esr(config-trustpoint)# enable |
Настроить на маршрутизаторе PKI-клиент так, чтобы он успешно подключался к удостоверяющему центру. В качестве удостоверяющего центра рассмотрим полностью настроенный PKI-сервер из предыдущего примера. Помимо настройки отличительного имени сертификата, настроим в качестве альтернативного имени IP-адрес маршрутизатора и его полное доменное имя.

В качестве начальной конфигурации на маршрутизаторе уже настроен сетевой интерфейс в сторону Интернет-провайдера, прописан шлюз по умолчанию и настроена зона безопасности. Шлюз Интернет-провайдера также может служить источником синхронизации времени по протоколу NTP.
hostname ESR.CA
security zone WAN
exit
interface gigabitethernet 1/0/1.103
security-zone WAN
ip address 10.0.103.2/30
exit
security zone-pair WAN self
rule 10
description "Allow access to PKI-server from WAN"
action permit
match protocol tcp
match destination-address address-range 10.0.103.2
match destination-port port-range 80
enable
exit
exit
ip route 0.0.0.0/0 10.0.103.1
ntp enable
ntp server 10.0.103.1
exit
crypto pki server
challenge-password StR0nnGPass
subject-name
common-name ca.company.loc
organization Company
locality Moscow
state Moscow
country RU
exit
lifetime 14
source-interface gigabitethernet 1/0/1.103
enable
exit |
hostname ESR.R1 security zone WAN exit interface gigabitethernet 1/0/1.113 security-zone WAN ip address 10.0.113.2/30 exit ip route 0.0.0.0/0 10.0.113.1 |
Настроим NTP-клиент на получение точного времени от шлюза Интернет-провайдера:
Настройка NTP-клиента для работы PKI-клиента не является обязательной, в отличие от конфигурирования PKI-сервера. Но в связи с чувствительностью инфраструктуры открытых ключей к актуальности времени на узлах, использующих выписанные сертификаты, настройка NTP рекомендуется и на клиентской стороне. |
ESR.R1(config)# ntp enable ESR.R1(config)# ntp server 10.0.113.1 ESR.R1(config-ntp-server)# exit ESR.R1(config)# |
Применим конфигурацию на маршрутизаторе и дождемся успешной синхронизации времени по протоколу NTP:
Если произвести настройку подключения к NTP серверу одновременно с настройкой PKI-клиента, сгенерированные на этапе запуска PKI-клиента служебные файлы и сертификаты могут содержать некорректные дату и время, что приведет к ошибкам в дальнейшей работе инфраструктуры PKI. |
ESR.R1(config)# end
Warning: you have uncommitted configuration changes.
ESR.R1# commit
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
ESR.R1# confirm
Configuration has been confirmed. Commit timer canceled.
ESR.R1#
ESR.R1# sh ntp peers
Clock is synchronized, stratum 6, reference is 10.0.113.1
remote vrf refid st t when poll reach delay offset jitter
- ---------------------------------------------- ---------- --------------- -- - ---- ---- ----- -------- -------- --------
* 10.0.113.1 127.127.1.0 5 u 10 64 37 0.441 0.017 2.344
ESR.R1# |
Перейдем к настройке PKI-клиента:
ESR.R1(config)# crypto pki trustpoint TP_R1 ESR.R1(config-trustpoint)# |
Перейдем в раздел настройки отличительного имени клиентского сертификата. Настроим те атрибуты, которые позволят однозначно идентифицировать клиента:
ESR.R1(config-trustpoint)# subject-name ESR.R1(config-trustpoint-subject-name)# country RU ESR.R1(config-trustpoint-subject-name)# state Moscow ESR.R1(config-trustpoint-subject-name)# locality Moscow ESR.R1(config-trustpoint-subject-name)# organization Company ESR.R1(config-trustpoint-subject-name)# common-name r1.company.loc ESR.R1(config-trustpoint-subject-name)# exit ESR.R1(config-trustpoint)# |
Перейдем в раздел настройки альтернативных имен сертификата. Укажем в качестве альтернативных имен IP-адрес и полное доменное имя:
ESR.R1(config-trustpoint)# subject-alt-name ESR.R1(config-trustpoint-san)# ipv4 10.0.113.2 ESR.R1(config-trustpoint-san)# dns r1.company.loc ESR.R1(config-trustpoint-san)# exit ESR.R1(config-trustpoint)# |
Перейдем в режим настройки механизма выпуска сертификата. Для PKI-клиента, выпускающего сертификаты от вышестоящего удостоверяющего центра по протоколу SCEP необходимо указать значение "scep":
ESR.R1(config-trustpoint)# enrollment scep ESR.R1(config-trustpoint-enrollment-scep)# |
Укажем URL подключения к удостоверяющему центру:
ESR.R1(config-trustpoint-enrollment-scep)# url http://10.0.103.2/ ESR.R1(config-trustpoint-enrollment-scep)# |
Укажем цифровой отпечаток сертификата удостоверяющего центра, при несовпадении настроенного в конфигурации PKI-клиента отпечатка с отпечатком сертификата, которым представится сам удостоверяющий центр процесс выпуска сертификата будет прерван. На сервисных маршрутизаторах ESR получить цифровой отпечаток сертификата удостоверяющего центра можно из вывода команды show crypto pki server:
ESR.R1(config-trustpoint-enrollment-scep)# fingerprint A2:0C:10:C7:0E:06:3A:2F:EE:5F:C2:72:39:36:31:0A ESR.R1(config-trustpoint-enrollment-scep)# |
Зададим challenge-password для корректного обращения к удостоверяющему центру:
ESR.R1(config-trustpoint-enrollment-scep)# challenge-password StR0nnGP+ss ESR.R1(config-trustpoint-enrollment-scep)# exit ESR.R1(config-trustpoint)# |
Укажем назначение генерируемых сертификатов. Для PKI-клиента, используемого в качестве источника ключевой информации в IPsec-туннелях, необходимо указать значение "ipsec".
ESR.R1(config-trustpoint)# usage ipsec ESR.R1(config-trustpoint)# |
Привяжем PKI-клиент к адресу сетевого интерфейса, смотрящего в сторону Интернет-провайдера:
ESR.R1(config-trustpoint)# source-interface gi 1/0/1.113 ESR.R1(config-trustpoint)# |
Включим PKI-клиент:
ESR.R1(config-trustpoint)# enable ESR.R1(config-trustpoint)# exit ESR.R1(config)# |
Поскольку трафик PKI-клиента исходящий, дополнительных правил фильтрации в Zone-Based Firewall добавлять не требуется.
Применим конфигурацию на маршрутизаторе:
ESR.R1(config)# end Warning: you have uncommitted configuration changes. ESR.R1# commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. ESR.R1# confirm Configuration has been confirmed. Commit timer canceled. ESR.R1# |
В результате получим настроенный PKI-клиент, который сразу после запуска обратится к удостоверяющему центру за выпуском сертификата. Отследить состояние настроенных PKI-клиентов можно командой show crypto pki trustpoints:
ESR.R1# show crypto pki trustpoints
Name Enrollment Usage Subject name Status Next action
--------------- ---------- ------- ------------------------------ ------------------ --------------------
TP_R1 scep ipsec CN=r1.company.loc/O=Company/L= Ready 2026-03-12 11:40:00
Moscow/ST=Moscow/C=RU
ESR.R1# |
Более подробную информацию о PKI-клиенте можно посмотреть, если выполнить команду show crypto pki trustpoints с указанием имени PKI-клиента:
ESR.R1# show crypto pki trustpoints TP_R1 Name: TP_R1 Usage: ipsec Subject name: CN=r1.company.loc/O=Company/L=Moscow/ST=Moscow/C=RU Enrollment: scep Challenge password: Active Status: Ready Renew date: 2026-03-12 11:40:00 CRL: Active CRL status: Exist CRL renew date: 2026-03-01 08:59:16 ESR.R1# |
При успешном получении сертификата от удостоверяющего центра PKI-клиент вычитывает период действия сертификата и за 20% времени до его истечения планирует процедуру перевыпуска нового сертификата (certificate auto-enroll). Дата запланированного перевыпуска сертификата соответствующего PKI-клиента присутствует в графе "Renew date" вывода команды show crypto pki trustpoints с указанием имени конкретного PKI-клиента:
ESR.R1# show crypto pki trustpoints TP_R1 Name: TP_R1 Enrollment: SCEP Subject name: CN=r1.company.loc/O=Company/L=Moscow/ST=Moscow/C=RU Challenge password: Active Status: Ready Renew date: 2025-11-02 11:35:39 ESR.R1# |
При наступлении этого времени PKI-клиент запустит процедуру перевыпуска сертификата и в случае успеха заменит текущий сертификат на новый. На это укажет как факт смены запланированной даты перевыпуска сертификата, так и новый серийный номер сертификата:
ESR.R1# show crypto pki trustpoints TP_R1 cert | include "Serial" Serial: 85:71:EC:28:6C:C8:4E:23:B2:03:03:2F:4D:DF:B8:63 ESR.R1# show crypto pki trustpoints TP_R1 Name: TP_R1 Usage: ipsec Subject name: CN=r1.company.loc/O=Company/L=Moscow/ST=Moscow/C=RU Enrollment: scep Challenge password: Active Status: Ready Renew date: 2026-03-12 11:40:00 CRL: Active CRL status: Exist CRL renew date: 2026-03-01 08:59:16 ESR.R1# |
ESR.R1# show date "2025-11-02 11:35:46" ESR.R1# show crypto pki trustpoints TP_R1 Name: TP_R1 Usage: ipsec Subject name: CN=r1.company.loc/O=Company/L=Moscow/ST=Moscow/C=RU Enrollment: scep Challenge password: Active Status: Ready Renew date: 2026-03-23 16:28:00 CRL: Active CRL status: Exist CRL renew date: 2026-03-13 11:40:00 ESR.R1# show crypto pki trustpoints TP_R1 cert | include "Serial" Serial: D4:F1:0C:10:9B:59:4C:88:BF:95:03:D8:F4:E2:40:8B ESR.R1# |
В базе сертификатов удостоверяющего центра, в свою очередь, выписанный ранее клиентский сертификат будет отозван:
ESR.CA# show crypto pki server database
Serial State Issue date Expiration Revocation Subject name
date date
----------------------------------------------- --------- ---------- ---------- ---------- ------------------------------
85:71:EC:28:6C:C8:4E:23:B2:03:03:2F:4D:DF:B8:63 Revoked 2026-03-01 2026-03-15 2026-03-12 CN=r1.company.loc/O=Company/L=
06:52:00 06:52:00 11:40:00 Moscow/ST=Moscow/C=RU
D4:F1:0C:10:9B:59:4C:88:BF:95:03:D8:F4:E2:40:8B Valid 2026-03-12 2026-03-26 -- CN=r1.company.loc/O=Company/L=
11:40:00 11:40:00 Moscow/ST=Moscow/C=RU
ESR.CA# |
После завершения инициализации PKI-сервера обслуживающий его PKI-клиент вычитывает период действия сертификата и за 20% времени до его истечения планирует процедуру подготовки так называемого теневого сертификата (certificate auto-rollover). Данный сертификат предназначен для замены текущего сертификата удостоверяющего центра после его истечения. Наличие сгенерированного теневого сертификата отображается в графе "Shadow" вывода команды show crypto pki server. Дата запланированной генерации теневого сертификата присутствует в графе "Renew date" вывода команды show crypto pki trustpoints с указанием имени PKI-клиента, обслуживающего PKI-сервер:
ESR.CA# show crypto pki server
Status: Enabled
Associated trustpoint: ROOT_CA
Lifetime days: 14
Certificate fingerprint: A2:0C:10:C7:0E:06:3A:2F:EE:5F:C2:72:39:36:31:0A
Source: 10.0.103.2
Last issued serial number: D4:F1:0C:10:9B:59:4C:88:BF:95:03:D8:F4:E2:40:8B
Challenge password: Active
Shadow: Inactive
ESR.CA# show crypto pki trustpoints
Name Enrollment Usage Subject name Status Next action
--------------- ---------- ------- ------------------------------ ------------------ --------------------
ROOT_CA selfsigned root-ca CN=ca.company.loc/O=Company/L= Ready 2026-12-17 08:59:16
Moscow/ST=Moscow/C=RU
ESR.CA# show crypto pki trustpoints ROOT_CA
Name: ROOT_CA
Usage: root-ca
Subject name: CN=ca.company.loc/O=Company/L=Moscow/ST=Moscow/C=RU
Enrollment: selfsigned
Status: Ready
Renew date: 2026-12-17 08:59:16
CRL: Inactive
ESR.CA# |
После успешной генерации теневого сертификата обновится графа "Shadow" вывода команды show crypto pki server, а также состояние соответствующего PKI-клиента в выводах команды show crypto pki trustpoints:
ESR.CA# show date
"2026-12-17 09:01:36"
ESR.CA#
ESR.CA# show crypto pki server
Status: Enabled
Associated trustpoint: ROOT_CA
Lifetime days: 14
Certificate fingerprint: A2:0C:10:C7:0E:06:3A:2F:EE:5F:C2:72:39:36:31:0A
Source: 10.0.103.2
Last issued serial number: 0A:AF:EA:35:92:E6:48:08:B3:A3:7A:8B:29:85:3B:56
Challenge password: Active
Shadow: Active
ESR.CA# show crypto pki trustpoints
Name Enrollment Usage Subject name Status Next action
--------------- ---------- ------- ------------------------------ ------------------ --------------------
ROOT_CA selfsigned root-ca CN=ca.company.loc/O=Company/L= Ready with shadow 2027-02-28 08:59:16
Moscow/ST=Moscow/C=RU
ESR.CA# show crypto pki trustpoints ROOT_CA
Name: ROOT_CA
Usage: root-ca
Subject name: CN=ca.company.loc/O=Company/L=Moscow/ST=Moscow/C=RU
Enrollment: selfsigned
Status: Ready with shadow
Renew date: 2027-02-28 08:59:16
CRL: Inactive
ESR.CA# |
Любой PKI-клиент, обращающийся за выпуском сертификата в удостоверяющий центр и получивший клиентский сертификат со сроком завершения валидности, эквивалентным сроку завершения жизни сертификата удостоверяющего центра, зафиксирует событие истечения жизни сертификата удостоверяющего центра и отдельным запросом запросит теневой сертификат уже для себя:
ESR.R1# sh crypto pki trustpoints
Name Enrollment Usage Subject name Status Next action
--------------- ---------- ------- ------------------------------ ------------------ --------------------
TP_R1 scep ipsec CN=r1.company.loc/O=Company/L= Ready with shadow 2027-02-28 08:59:16
Moscow/ST=Moscow/C=RU
ESR.R1# sh crypto pki trustpoints TP_R1
Name: TP_R1
Usage: ipsec
Subject name: CN=r1.company.loc/O=Company/L=Moscow/ST=Moscow/C=RU
Enrollment: scep
Challenge password: Active
Status: Ready with shadow
Renew date: 2027-02-28 08:59:16
CRL: Active
CRL status: Exist
CRL renew date: 2027-02-26 15:00:00
ESR.R1# sh crypto pki trustpoints TP_R1 ca | include " after"
Valid after: 2026-02-28 08:59:16
Invalid after: 2027-02-28 08:59:16
ESR.R1# sh crypto pki trustpoints TP_R1 cert | include " after"
Valid after: 2027-02-25 15:00:00
Invalid after: 2027-02-28 08:59:16
ESR.R1# |
В момент, когда текущий сертификат удостоверяющего центра истечет, и PKI-клиент самого удостоверяющего центра, и PKI-клиенты, выписывающие клиентские сертификаты, произведут замену текущего сертификата на теневой и продолжат штатную работу:
ESR.CA# show crypto pki trustpoints
Name Enrollment Usage Subject name Status Next action
--------------- ---------- ------- ------------------------------ ------------------ --------------------
ROOT_CA selfsigned root-ca CN=ca.company.loc/O=Company/L= Ready with shadow 2027-02-28 08:59:16
Moscow/ST=Moscow/C=RU
ESR.CA#
ESR.CA# show date
"2027-02-28 09:00:01"
ESR.CA# sh crypto pki server
Status: Enabled
Associated trustpoint: ROOT_CA
Lifetime days: 14
Certificate fingerprint: EA:13:09:02:46:6F:F3:91:46:F3:1F:AB:2F:90:CA:18
Source: 10.0.103.2
Last issued serial number: F3:C4:74:88:E8:AC:44:4D:B9:DC:CD:E8:9E:95:0A:7E
Challenge password: Active
Shadow: Inactive
ESR.CA# show crypto pki trustpoints
Name Enrollment Usage Subject name Status Next action
--------------- ---------- ------- ------------------------------ ------------------ --------------------
ROOT_CA selfsigned root-ca CN=ca.company.loc/O=Company/L= Ready 2027-12-17 08:59:16
Moscow/ST=Moscow/C=RU
ESR.CA# |
ESR.R1# show crypto pki trustpoints
Name Enrollment Usage Subject name Status Next action
--------------- ---------- ------- ------------------------------ ------------------ --------------------
TP_R1 scep ipsec CN=r1.company.loc/O=Company/L= Ready with shadow 2027-02-28 08:59:16
Moscow/ST=Moscow/C=RU
ESR.R1#
ESR.R1# show date
"2027-02-28 09:00:01"
ESR.R1# show crypto pki trustpoints
Name Enrollment Usage Subject name Status Next action
--------------- ---------- ------- ------------------------------ ------------------ --------------------
TP_R1 scep ipsec CN=r1.company.loc/O=Company/L= Ready 2027-03-11 13:47:16
Moscow/ST=Moscow/C=RU
ESR.R1# |
Процесс выпуска сертификатов и ключей для маршрутизаторов ESR может быть и ручным. Небольшой набор команд позволяет администратору формировать приватный ключ, сгенерировать по нему запрос на сертификацию и отправить его на удаленный хост, откуда его уже можно будет доставить в УЦ для выпуска сертификата. Пользовательский сертификат, а также сопутствующие файлы могут быть загружены обратно на ESR для дальнейшего использования в сервисах маршрутизатора.
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Сгенерировать приватный ключ RSA. | esr# crypto generate private-key rsa <KEY-SIZE> filename <NAME>
| <KEY-SIZE> – размер ключа в битах. Значение может находится в диапазоне от 1024 до 4096; <NAME> – имя файла приватного ключа, задаётся строкой до 31 символа. |
| 2 | Сформировать запрос на сертификацию. | esr# crypto generate csr private-key <PRIVATE-KEY> [[alternative-name <ALT-NAME>][common-name <COMMON-NAME>][country <COUNTRY>][email-address <E-MAIL>][locality <LOCATION>][organization <ORGANIZATION>][organizational-unit <ORGANIZATION-UNIT>][state <STATE>]] filename <NAME>
| <PRIVATE-KEY> – имя файла приватного ключа, задаётся строкой до 31 символа; <ALT-NAME> – альтернативное имя сертификата, задаётся строкой от 5 до 255 символов в формате <TYPE>:<VALUE>, где:
<COMMON-NAME> – общее имя, задаётся строкой от 1 до 64 символов. Чаще всего в качестве общего имени клиентского сертификата используется полное доменное имя хоста, который использует данный клиентский сертификат или ФИО пользователя, использующего клиентский сертификат; <COUNTRY> – код страны, задаётся строкой длиной 2 символа. Рекомендуется использовать двухбуквенные обозначения стран "alpha-2" из стандарта ISO 3166-1; <E-MAIL> – адрес электронной почты, задаётся строкой от 3 до 64 символов; <LOCATION> – название населенного пункта или его территориальной единицы, задаётся строкой от 1 до 128 символов; <ORGANIZATION> – название организации, задаётся строкой от 1 до 64 символов; <ORGANIZATION-UNIT> – название подразделения организации, задаётся строкой от 1 до 64 символов; <STATE> – название штата, области или провинции, задаётся строкой от 1 до 128 символов; <NAME> – имя файла запроса на сертификацию, задаётся строкой до 31 символа. |
| 3 | Выгрузить запрос на сертификацию с устройства. | esr# copy crypto:csr/<CERT-REQ> <DESTINATION> | <CERT-REQ> – имя файла запроса на сертификацию, задаётся строкой до 31 символа; <DESTINATION> – локальное или удаленное файловое хранилище, куда будет выгружен запрос на сертификацию. Полный список возможных вариантов и синтаксис их описания подробно указан в описании команды copy в справочнике команд CLI. |
| 4 | Загрузить на устройство клиентский сертификат, выписанный удостоверяющим центром. | esr# copy <SOURCE> crypto:cert/<CERT> | <SOURCE> – локальное или удаленное файловое хранилище, откуда будет загружен файл клиентского сертификата. Полный список возможных вариантов и синтаксис их описания подробно указан в описании команды copy в справочнике команд CLI; <CERT> – имя файла клиентского сертификата, задаётся строкой до 31 символа. |
| 5 | Загрузить на устройство сертификат удостоверяющего центра. | esr# copy <SOURCE> crypto:cert/<CA-CERT> | <SOURCE> – локальное или удаленное файловое хранилище, откуда будет загружен файл сертификата удостоверяющего центра. Полный список возможных вариантов и синтаксис их описания подробно указан в описании команды copy в справочнике команд CLI; <CA-CERT> – имя файла сертификата удостоверяющего центра, задаётся строкой до 31 символа. |
| 6 | Загрузить на устройство список отозванных сертификатов удостоверяющего центра. | esr# copy <SOURCE> crypto:crl/<CRL> | <SOURCE> – локальное или удаленное файловое хранилище, откуда будет загружен файл со списком отозванных сертификатов. Полный список возможных вариантов и синтаксис их описания подробно указан в описании команды copy в справочнике команд CLI; <CRL> – имя файла со списком отозванных сертификатов, задаётся строкой до 31 символа. |
Сгенерировать на ESR приватный RSA-ключ и сформировать запрос на сертификацию. Помимо настройки отличительного имени сертификата настроим в качестве альтернативного имени его полное доменное имя.
Для удобства дальнейшей идентификации ключей и сертификатов рекомендуется использовать в качестве имен файлов доменное имя хоста, для которого формируется ключевая пара и префикс сервиса. |
Поскольку сертификаты (как клиентские, так и самого удостоверяющего центра) имеют ограниченный срок действия, то отслеживание истечения срока действия сертификатов и их своевременный перевыпуск полностью находится в зоне ответственности администратора маршрутизатора. |
Сгенерируем приватный ключ RSA:
При генерации ключей RSA рекомендуется использовать ключи длиной 2048 бит и более. |
ESR.R1# crypto generate private-key rsa 2048 filename r1.company.loc.key .....+.......+..+..........+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*......+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+.........+..+.+...+.........+..+...+......+....+...+........+ .......+........+.+......+.........+........................+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.......+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+.+...+......+.....+......+.......+......+......+.....+...+...............+.+..... .+.....+.+.....+...+.......+.....+...+....+...+..+............+......+....+........+.+..+............+.+...........+..................+...+....+...........+.........+....+..+.......+......+......+........+...........................+..... ........+...+.........+.....+.+...+............+..+..........+..+...+.+..+...+................+.....+.+........+.+.....+....+...........+...+...+...+.......+........+..........+..+.........+...+...+...+.+...+......+......+......+...+..... .........+.+.....+.+...+..+...+.......+......+............+......+.........+.....+.+............+.....+....+...+...+.................+...+.......+..+.+............+..+.+...+.....+....+...............+...........+....+...+................. +.+...........+...+.+.....+.+...+...........+..........+.....+.........+...+....+..............+.+........+...+....+......+........+.+......+..+.+....................+....+......+..+...+................+...+........+.......+...........+.+ ......+..+.+......+.....+...+......+.......+........+.+......+........+......+.+...+...........................+........+.+...+...........+.+.....+.+.........+...+.....+.......+.....+......+...+......+.....................+..........+..+. .....+......+.+..............+.+.....+....+...+...........+......+....+.....+....+...+...+..+............+.+.................+...+.+..............+............+.........+......+....+......+...+.........+..+.+..+.+..+...................... +........+.......+..+....+......+......+..+...+..........+...........................+............+.....+...+.+.....+....+...+.....+....+...+...........+......+.+...+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ESR.R1# |
Сформируем запрос на сертификацию:
ESR.R1# crypto generate csr private-key r1.company.loc.key country RU state Moscow locality Moscow organization Company common-name r1.company.loc email-address netmaster@company.loc alternative-name DNS:r1.company.loc filename r1.company.loc.csr ESR.R1# |
Выгрузим сформированный запрос на сертификацию на внешний TFTP-сервер для дальнейшей доставки в удостоверяющий центр:
ESR.R1# copy crypto:csr/r1.company.loc.csr tftp://10.0.113.1:/r1.company.loc.csr |******************************************| 100% (1094B) Success! ESR.R1# |
Процесс доставки запроса на сертификацию в удостоверяющий центр и непосредственно сам выпуск сертификата индивидуален для каждого удостоверяющего центра и не рассматривается в данном разделе руководства. |
После успешного выпуска сертификата удостоверяющим центром загрузим клиентский сертификат, сертификат удостоверяющего центра и список отозванных сертификатов на маршрутизатор:
ESR.R1# copy tftp://10.0.113.1:/ca.crt crypto:cert/ca.crt |******************************************| 100% (2264B) Crypto file loaded successfully! ESR.R1# copy tftp://10.0.113.1:/ca.crl crypto:crl/ca.crl |******************************************| 100% (1064B) Crypto file loaded successfully! ESR.R1# copy tftp://10.0.113.1:/r1.company.loc.crt crypto:cert/r1.company.loc.crt |******************************************| 100% (1931B) Crypto file loaded successfully! ESR.R1# |
Посмотреть итоговое содержимое сертификата можно командой show crypto certificates:
ESR.R1# show crypto certificates cert r1.company.loc.crt
Version: 3
Serial: 4096
Subject name:
C(countryName): RU
ST(stateOrProvinceName): Moscow
O(organizationName): Company
CN(commonName): r1.company.loc
emailAddress(emailAddress): netmaster@company.loc
Issuer name:
C(countryName): RU
ST(stateOrProvinceName): Moscow
L(localityName): Moscow
O(organizationName): Company
CN(commonName): Company Root Certificate Authority
Validity period:
Valid after: 2025-10-28 03:26:41
Invalid after: 2025-11-27 03:26:41
Signature:
Algorithm: sha256WithRSAEncryption
Value: 37:6D:30:DE:C3:EF:D8:06:D6:4B:AA:AC:6A:78:65:C2:7C:7B:
EA:E9:F6:C0:A7:0F:9B:01:D2:C6:05:95:43:A1:C6:7B:F7:43:
F7:BE:78:7F:BA:65:73:88:31:91:C5:4F:FA:BF:41:99:D6:28:
A5:29:72:85:20:52:2E:0C:1D:3E:37:78:10:B5:CC:AE:D5:A9:
A6:79:FE:07:F4:93:E2:E9:F4:48:17:E5:A6:EB:36:D9:3E:41:
2E:8D:E9:7A:D4:75:49:A5:98:8F:76:73:8A:A7:E6:1D:89:CA:
46:B2:FC:A6:E7:96:F3:79:EB:5A:B1:B0:63:E4:AC:7C:D9:29:
AE:2D:04:4E:45:B0:08:38:7F:C6:62:72:04:C6:A2:7C:BC:77:
AF:CE:92:2F:66:75:33:8B:81:AB:98:40:61:74:9C:6B:10:15:
78:A7:58:02:DA:D1:69:C2:C2:8B:DA:66:18:BD:13:FB:4F:7D:
35:35:C3:21:6F:0A:A0:53:ED:56:F8:B9:E9:0E:6F:6D:DD:E1:
A0:AD:4A:07:97:AE:79:3C:2F:7C:E6:76:DD:9F:37:50:EB:AD:
56:3D:BA:51:D0:C1:15:25:54:F6:E2:1D:12:39:46:5F:E3:33:
1E:49:26:04:E0:23:FB:C5:FA:A8:0D:B7:16:23:C5:C9:3E:0C:
85:E2:CE:72:B5:97:0D:3D:15:D6:5D:F7:12:78:9C:84:D2:21:
C8:EC:BE:45:90:A5:CB:38:87:AB:8C:04:4B:BA:42:2B:40:95:
94:BE:F9:82:80:44:76:79:ED:42:5A:ED:28:07:E4:16:6D:C8:
80:D4:33:87:97:39:20:E9:CC:EB:F3:74:CE:F2:3C:6E:4E:C8:
37:51:21:F8:CA:AD:C6:09:3B:19:07:B2:34:3C:17:31:B8:22:
CC:BA:73:5E:9F:CD:F4:8B:38:71:BB:2F:7A:A5:F5:43:A8:8E:
07:47:36:BA:8D:BA:DB:BB:8F:9C:EB:49:A4:6C:2E:30:30:C1:
AF:06:F1:0D:E6:C7:DA:7B:FD:94:68:FD:F0:B3:3F:30:45:8C:
ED:77:FE:09:64:0E:4D:02:03:82:3A:30:61:24:08:4A:AF:BD:
C2:32:6B:70:78:E6:C1:F2:6E:2A:3E:30:1A:7A:A2:BE:70:7F:
86:8A:9B:12:D0:92:7D:14:99:72:FA:30:29:BE:44:8F:3C:D8:
75:16:AE:BD:23:97:E0:04:B5:8A:B9:71:F0:F7:15:0A:A8:95:
CC:51:23:21:6E:3F:9B:64:B1:73:A7:2F:03:22:46:6F:DD:A2:
90:A1:E4:7F:94:92:7F:E7:C2:C5:B9:F9:9D:D3:19:CF:34:3D:
D0:C0:E0:30:F8:77:1A:E8
Public key info:
Algorithm: RSA
Key size: 2048
Exponent: 65537
Modulus: 00:9D:41:BB:13:A8:99:9C:3E:E7:2C:0E:A5:B6:A8:CA:22:64:
BB:B9:77:E5:CE:DE:5E:71:83:9A:90:22:D1:32:E1:66:45:FC:
6C:53:DA:65:D5:FF:C7:35:2C:24:F6:BA:AD:72:DD:27:A5:09:
30:CC:AA:E3:F8:33:B5:10:1C:23:D9:EA:DA:30:6F:E4:2C:C4:
EC:08:E9:12:72:05:0C:C1:CF:6B:72:8F:B5:E8:5B:90:67:B1:
4C:59:D3:4D:CA:0C:73:94:47:F7:DB:BC:83:38:24:E2:AC:19:
DF:7D:8F:99:E0:B2:72:E3:A3:5B:7E:B8:EC:7B:6C:17:8C:48:
5A:F2:F5:A5:14:D3:07:E3:7E:5A:CD:70:6A:9E:38:2D:80:4F:
29:B3:60:F8:AC:7B:C5:09:09:B9:4B:92:D4:E0:44:5D:9E:1A:
AF:0E:25:FA:E5:73:C3:51:8F:DE:BB:F5:71:0C:2F:F3:AC:F5:
7D:79:8A:E6:87:0A:05:6A:D8:C8:6D:FE:BE:90:7D:B5:A2:3D:
3B:75:96:CF:25:98:5C:0B:F2:E3:C1:E7:B5:30:58:27:13:64:
DD:DB:77:A8:10:9C:A5:25:AC:85:DA:30:21:87:71:A8:D7:D8:
BC:60:40:C7:53:54:01:03:0E:60:5D:2B:43:99:97:F2:26:6E:
8F:F7:47:CF:9F
X509v3 Basic Constraints:
CA: No
Critical: Yes
X509v3 Subject key identifier:
ID: 40:6D:58:0E:0A:4C:CD:89:71:CA:DB:D2:BC:AD:FA:27:C9:1E:
4D:D8
Critical: No
X509v3 Authority key identifier:
ID: 7C:E6:3C:E3:FB:76:C5:18:B3:21:52:9D:8F:71:29:28:55:CA:
96:63
Critical: No
X509v3 Key Usage:
Usage: Digital Signature
Non Repudiation
Critical: Yes
X509v3 Subject Alternative Name:
Names: DNS:r1.company.loc
Critical: No
ESR.R1# |
Как можно заметить, выписанный сертификат действует 30 дней и в нем было сохранено заданное альтернативное имя. Теперь данный сертификат можно использовать в сервисах маршрутизатора.
Для корректной работы сервисов, использующих сертификаты, рекомендуется настроить на маршрутизаторе синхронизацию времени по протоколу NTP. |