...
| Шаг | Описание | Команда | Ключи | ||||
|---|---|---|---|---|---|---|---|
| 1 | Настроить NTP-клиент согласно разделу Алгоритм настойки NTP. Маршрутизатор должен получать точное время от NTP-сервера или NTP-пира, либо доверять локально настроенному времени с включенным режимом NTP Master. |
| |||||
| 2 | Перейти в режим настройки PKI-клиента, который будет использоваться в настройках PKI-сервера как источник самоподписанных сертификатов. | esr(config)# crypto pki servertrustpoint <TRUSTPOINT> | <TRUSTPOINT> – имя PKI-клиента, задаётся строкой от 1 до 31 символа. | ||||
| 3 | Перейти в режим настройки отличительного имени сертификата – набора атрибутов, уникально описывающих удостоверяющий центр. | esr(config-pki-servertrustpoint)# subject-name | |||||
| 4 | Указать код страны (необязательно). | esr(config-pkitrustpoint-server-subject-name)# country <COUNTRY> | <COUNTRY> – код страны, задаётся строкой длиной 2 символа. Рекомендуется использовать двухбуквенные обозначения стран "alpha-2" из стандарта ISO 3166-1. | ||||
| 5 | Указать название штата, области или провинции (необязательно). | esr(config-pki-servertrustpoint-subject-name)# state <STATE> | <STATE> – название штата, области или провинции, задаётся строкой от 1 до 128 символов. | ||||
| 6 | Указать название населенного пункта или его территориальной единицы (необязательно). | esr(config-pkitrustpoint-server-subject-name)# locality <LOCATION> | <LOCATION> – название населенного пункта или его территориальной единицы, задаётся строкой от 1 до 128 символов. | ||||
| 7 | Указать название организации (необязательно). | esr(config-pkitrustpoint-server-subject-name)# organization <ORGANIZATION> | <ORGANIZATION> – название организации, задаётся строкой от 1 до 64 символов. | ||||
| 8 | Указать подразделение организации (необязательно). | esr(config-pkitrustpoint-server-subject-name)# organization-unit <ORGANIZATION-UNIT> | <ORGANIZATION-UNIT> – название подразделения организации, задаётся строкой от 1 до 64 символов. | ||||
| 9 | Указать общее имя сертификата. | esr(config-pkitrustpoint-server-subject-name)# common-name <COMMON-NAME> | <COMMON-NAME> – общее имя, задаётся строкой от 1 до 64 символов. Чаще всего Как правило в качестве общего имени сертификата удостоверяющего центра используется имя домена, который обслуживает удостоверяющий центр или юридическое название удостоверяющего центра. | ||||
| 10 | Указать IP-адрес или сетевой интерфейс, который будет будет прослушиваться PKI-сервером для обработки входящих запросовПерейти в режим настройки альтернативных имен сертификата (необязательно). | esr(config-trustpoint)# subject-alt-name | |||||
| 11 | Указать IP-адрес в качестве альтернативного имени сертификата (необязательно)В случае, если настройка не будет указана PKI-сервер будет принимать запросы на всех настроенных IP-интерфейсах маршрутизатора. | esr(config-pkitrustpoint-serversan)# source-address ipv4 <ADDR> | <ADDR> – IP-адрес, назначенный на локальном сетевом интерфейсе маршрутизатора, на котором PKI-сервер будет слушать входящие подключения, задаётсязадаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. | ||||
| esr(config-pkitrustpoint-serversan)# sourceipv6 <IPV6-interface <IF> | <IF> – интерфейс или туннель, на котором PKI-сервер будет слушать входящие подключения. | ADDR> | <IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. | ||||
| 12 | Указать полное доменное имя хоста в качестве альтернативного имени сертификата (необязательно). | 11 | Указать challenge-password, который будет использован для аутентификации PKI-клиентов, желающих выписать сертификат (необязательно). | esr(config-pkitrustpoint-serversan)# challenge-password { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> } | <CLEAR-TEXT> – пароль, задаётся строкой от 8 до 32 символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 32 байт (от 16 до 64 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). | 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 | 12 | Указать время жизни выписываемых клиентам сертификатов в днях. | esr(config-pki-server )# lifetime <DAYS> | <DAYS> – количество дней, принимает значения в диапазоне [1..3650]. Значение по умолчанию: 3653650. | |
| 16 | Указать назначение генерируемых сертификатов. Для PKI-клиента, используемого в настройках PKI-сервера в качестве источника самоподписанных сертификатов необходимо указать значение "root-ca" | 13 | Включить PKI-сервер . | esr(config- pki-servertrustpoint)# 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)# |
Перейдем к настройке PKI-сервера:
...
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 |
Привяжем PKI-сервер к адресу сетевого интерфейса, смотрящего в сторону Интернет-провайдера:
...
| (config-pki-server)# |
...
| lifetime <DAYS> | <DAYS> – количество дней, принимает значения в диапазоне [1..3650]. Значение по умолчанию: 365. | |
| 25 | Включить PKI-сервер. | esr |
Зададим challenge-password, для корректного обращения к удостоверяющему центру PKI-клиенты должны использовать правильный challenge-password.
...
| (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-pki-server)# lifetime 14
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 ntp enable ESR.CA(config-security-zone-pair)# rulentp server 10.0.103.1 ESR.CA(config-security-zone-pair-rulentp-server)# description "Allow access to PKI-server from WAN"exit 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)# |
| Scroll Pagebreak |
|---|
Применим конфигурацию на маршрутизаторе:
)# |
Применим конфигурацию на маршрутизаторе и дождемся успешной синхронизации времени по протоколу NTP:
| Примечание |
|---|
Если произвести настройку подключения к NTP-серверу одновременно с настройкой PKI-сервера, сгенерированные на этапе запуска PKI-сервера служебные файлы и сертификаты могут содержать некорректные дату и время, что приведет к ошибкам в дальнейшей работе инфраструктуры PKI. |
| Блок кода |
|---|
ESR.CA(config)# end
Warning: you have uncommitted configuration changes.
ESR.CA# commit
|
| Блок кода |
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 server можно увидеть fingerprint сертификата удостоверяющего центра, который необходимо использовать в клиентах PKI совместно с установленным challenge-password для корректной авторизации:
| Блок кода |
|---|
ESR.CA# show crypto pki server Status: ESR.CA# sh ntp peers Clock is synchronized, stratum 6, reference is 10.0.103.1 remote Enabled Lifetime days: 14 Certificate fingerprint: 79:D2:B6:7E:DF:77:2D:C5:27:68:99:10:BA:EC:D2:47 Source:vrf refid gigabitethernet 1/0/1.103 Last issued serial number: -- Challenge password: Active ESR.CA# |
Настройка PKI-клиента
| Примечание |
|---|
Изменение отличительного имени клиентского сертификата или URL подключения к PKI-серверу приводит к немедленному перезапросу нового сертификата у удостоверяющего центра. |
Алгоритм настройки
...
Перейти в режим настройки PKI-клиента.
...
esr(config)# crypto pki trustpoint <TRUSTPOINT>
...
<TRUSTPOINT> – имя PKI-клиента, задаётся строкой от 1 до 31 символа.
...
Перейти в режим настройки отличительного имени сертификата – набора атрибутов, уникально описывающих владельца сертификата.
...
esr(config-trustpoint)# subject-name
...
Указать код страны (необязательно).
...
esr(config-trustpoint-subject-name)# country <COUNTRY>
...
<COUNTRY> – код страны, задаётся строкой длиной 2 символа. Рекомендуется использовать двухбуквенные обозначения стран "alpha-2" из стандарта ISO 3166-1.
...
<COMMON-NAME> – общее имя, задаётся строкой от 1 до 64 символов.
Чаще всего в качестве общего имени клиентского сертификата используется полное доменное имя хоста, который использует данный клиентский сертификат или ФИО пользователя, использующего клиентский сертификат.
...
<ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255].
...
<IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF].
...
<NAME> – полное доменное имя хоста (FQDN), задается строкой от 1 до 235 символов. Пример записи доменного имени – router.example.loc.
...
<EMAIL> – адрес электронной почты, задается строкой от 6 до 254 символов. Пример записи электронной почты – router@example.loc.
...
<URL> – URL для подключения к PKI-серверу, задается в виде
"http:// <ADDR>[:<PORT>]/", где:
- <ADDR> – IP-адрес или доменное имя PKI-сервера;
- <PORT> – порт, на котором запущен PKI-сервер, в случае если используется 80 порт по умолчанию, то настройку можно пропустить.
В случае если PKI-сервер расположен на том же маршрутизаторе, на котором настраивается PKI-клиент необходимо указать в URL любой из IP-интерфейсов, которые слушает PKI-сервер.
...
<FINGERPRINT> – значение цифровой отпечаток сертификата, полученного при помощи алгоритма MD5. Имеет размер 16 байт и задается в виде HEX-строки длиной 32 символа без разделителей (YYYY...) или 47 символов с двоеточием в роли разделителя (YY:YY:YY...).
...
<CLEAR-TEXT> – пароль, задаётся строкой от 8 до 32 символов;
<ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 32 байт (от 16 до 64 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...).
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# |
| Scroll Pagebreak |
|---|
Перейдем к настройке 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)# |
| Scroll Pagebreak |
|---|
Перейдем к настройке 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)# |
| Scroll Pagebreak |
|---|
Применим конфигурацию на маршрутизаторе:
| Блок кода |
|---|
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# |
Настройка PKI-клиента
| Примечание |
|---|
Изменение отличительного имени клиентского сертификата или 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-клиент так, чтобы он успешно подключался к удостоверяющему центру. В качестве удостоверяющего центра рассмотрим полностью настроенный 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 |
| Scroll Pagebreak |
|---|
Решение:
Настроим 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)# |
| Scroll Pagebreak |
|---|
Перейдем в раздел настройки отличительного имени клиентского сертификата. Настроим те атрибуты, которые позволят однозначно идентифицировать клиента:
| Блок кода |
|---|
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# |
| Scroll Pagebreak |
|---|
Более подробную информацию о 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-клиента
При успешном получении сертификата от удостоверяющего центра 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# |
| Scroll Pagebreak |
|---|
Процесс автоматического перевыпуска сертификата PKI-сервера
После завершения инициализации 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# |
| Scroll Pagebreak |
|---|
После успешной генерации теневого сертификата обновится графа "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# |
| Scroll Pagebreak |
|---|
Любой 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# |
| Scroll Pagebreak |
|---|
В момент, когда текущий сертификат удостоверяющего центра истечет, и PKI-клиент самого удостоверяющего центра, и PKI-клиенты, выписывающие клиентские сертификаты, произведут замену текущего сертификата на теневой и продолжат штатную работу:
| Блок кода |
|---|
ESR.CA# show crypto pki trustpoints |
...
Пример настройки PKI-клиента для подключения к корневому удостоверяющему центру
Задача:
Настроить на маршрутизаторе 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 |
| Scroll Pagebreak |
|---|
Решение:
Настроим 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)# |
Перейдем к настройке 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)# |
Укажем URL подключения к удостоверяющему центру:
| Блок кода |
|---|
ESR.R1(config-trustpoint)# url http://10.0.103.2/
ESR.R1(config-trustpoint)# |
Укажем цифровой отпечаток сертификата удостоверяющего центра, при несовпадении настроенного в конфигурации PKI-клиента отпечатка с отпечатком сертификата, которым представится сам удостоверяющий центр процесс выпуска сертификата будет прерван. На сервисных маршрутизаторах ESR получить цифровой отпечаток сертификата удостоверяющего центра можно из вывода команды show crypto pki server:
| Блок кода |
|---|
ESR.R1(config-trustpoint)# fingerprint 79:D2:B6:7E:DF:77:2D:C5:27:68:99:10:BA:EC:D2:47
ESR.R1(config-trustpoint)# |
Зададим challenge-password, для корректного обращения к удостоверяющему центру:
| Блок кода |
|---|
ESR.R1(config-trustpoint)# challenge-password StR0nnGP+ss
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 --------------- ---------- ------- ------------------------------ ------------------ -------------------- TPROOT_R1CA selfsigned SCEP root-ca CN=r1ca.company.loc/O=Company/L= Ready with shadow 2027-02-28 08:59:16 2025-11-02 11:35:39 =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: ESR.R1# |
Более подробную информацию о PKI-клиенте можно посмотреть, если выполнить команду show crypto pki trustpoints с указанием имени PKI-клиента:
| Блок кода |
|---|
ESR.R1# show crypto pki trustpoints TP_R1 Name:EA:13:09:02:46:6F:F3:91:46:F3:1F:AB:2F:90:CA:18 Source: 10.0.103.2 Last issued serial TP_R1 Enrollment: SCEP Subject namenumber: F3:C4:74:88:E8:AC:44:4D:B9:DC:CD:E8:9E:95:0A:7E Challenge password: CN=r1.company.loc/O=Company/L=Moscow/ST=Moscow/C=RU Challenge password: Active StatusShadow: Ready Renew date: 2025-11-02 11:35:39 ESR.R1# |
Процесс автоматического перевыпуска сертификата PKI-клиента
При успешном получении сертификата от удостоверяющего центра PKI-клиент вычитывает период действия сертификата и за 20% времени до его истечения планирует процедуру перевыпуска нового сертификата. Дата запланированного перевыпуска сертификата соответствующего PKI-клиента присутствует в графе "Renew date" вывода команды show crypto pki trustpoints с указанием имени конкретного PKI-клиента:
| Блок кода |
|---|
ESR.R1#Inactive ESR.CA# show crypto pki trustpoints TP_R1 Name: TP_R1 Enrollment: Usage SCEP Subject name: CN=r1.company.loc/O=Company/L=Moscow/ST=Moscow/C=RU Challenge password: Active Status: Status Next action Ready Renew date: 2025-11-02 11:35:39 ESR.R1# |
При наступлении этого времени PKI-клиент запустит процедуру перевыпуска сертификата и в случае успеха заменит текущий сертификат на новый. На это укажет как факт смены запланированной даты перевыпуска сертификата, так и новый серийный номер сертификата:
| Блок кода |
|---|
ESR.R1# show crypto pki trustpoints TP_R1 cert | include "Serial" Serial: --------------- ---------- ------- ------------------------------ ------------------ -------------------- ROOT_CA selfsigned root-ca CN=ca.company.loc/O=Company/L= Ready 2027-12-17 08:59:16 04:7E:C0:EF:F7:D0:46:53:AF:9D:C8:EE:17:A6:14:CC 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# |
| Блок кода |
ESR.R1# show date "2025-11-02 11:35:46" 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: ESR.CA# |
| Блок кода |
|---|
ESR.R1# show crypto pki trustpoints Name Enrollment Usage Ready Renew date: Subject name 2025-11-13 18:21:11 ESR.R1# show crypto pki trustpoints TP_R1 cert | include "Serial" Serial: Status Next action --------------- ---------- 10:34:38:55:CE:D1:4A:98:A5:0E:3F:9E:32:77:E7:22 ESR.R1# |
| Scroll Pagebreak |
|---|
В базе сертификатов удостоверяющего центра, в свою очередь, выписанный ранее клиентский сертификат будет отозван:
| Блок кода |
|---|
ESR.CA# show crypto pki server database Serial ------- ------------------------------ ------------------ -------------------- TP_R1 scep ipsec CN=r1.company.loc/O=Company/L= Ready with shadow State2027-02-28 08:59:16 Issue date Expiration Revocation Subject name Moscow/ST=Moscow/C=RU ESR.R1# ESR.R1# show date "2027-02-28 09:00:01" ESR.R1# show crypto pki trustpoints Name date date Enrollment Usage Subject name Status ------------------------------ Next action ----------------- --------- ---------- ---------- ---------- -------------------- ---------- 04:7E:C0:EF:F7:D0:46:53:AF:9D:C8:EE:17:A6:14:CC Revoked 2025-10-22 2025-11-05 2025-11-02 CN=r1.company.loc/O=Company/L ------- -------------------- TP_R1 scep ipsec CN=r1.company.loc/O=Company/L= Ready 062027-03-11 13:47:3916 06:47:39 11:36:01 =Moscow/ST=Moscow/C=RU 10:34:38:55:CE:D1:4A:98:A5:0E:3F:9E:32:77:E7:22 Valid 2025-11-02 2025-11-16 -- CN=r1.company.loc/O=Company/L 11:36:01 08:02:34 Moscow/ST=Moscow/C=RU =Moscow/ST=Moscow/C=RU ESR.CA# |
Процесс автоматического перевыпуска сертификата PKI-сервера
| Предупреждение |
|---|
В текущей версии ПО маршрутизаторов ESR автоматический перевыпуск сертификата PKI-сервера не реализован. Самоподписанный сертификат удостоверяющего центра генерируется на этапе настройки PKI-сервера сроком на 10 лет с момента генерации. Поддержка перевыпуска сертификата удостоверяющего центра будет поддержана в одном из следующих релизов. R1# |
Ручная генерация и распространение ключей и сертификатов X.509
...
Сгенерировать на ESR приватный RSA-ключ и сформировать запрос на сертификацию. Помимо настройки отличительного имени сертификата настроим в качестве альтернативного имени его полное доменное имя.
...

