Документация: ПО Факел — разрабатываемая версия

Инфраструктура открытых ключей

Обзор

Инфраструктура открытых ключей (PKI) ПО Факел хранит в конфигурации ключи и сертификаты, которые используют другие службы: VPN IPsec и OpenVPN, OpenConnect, обратный прокси-сервер, подключение к кэш-серверам RPKI по SSH и другие. Службы ссылаются на объекты PKI по имени, поэтому один сертификат или ключ можно использовать в нескольких местах.

Объекты PKI задаются в разделе pki:

  • ca — сертификаты центров сертификации (CA) с закрытым ключом (если маршрутизатор сам выпускает сертификаты) и списками отзыва (CRL);

  • certificate — сертификаты маршрутизатора с закрытыми ключами;

  • key-pair — пары открытого и закрытого ключей (например, ключи RSA для IPsec, см. Site-to-Site VPN);

  • dh — параметры Диффи — Хеллмана, openssh — ключи OpenSSH, openvpn — общие ключи OpenVPN;

  • x509 — общие параметры сертификатов X.509.

Команды режима «Администрирование» группы show pki выводят сертификаты X.509 из конфигурации:

  • команда show pki выводит все сертификаты центров сертификации, сертификаты и списки отзыва;

  • команда show pki ca выводит таблицу сертификатов центров сертификации: имя, субъект, издатель (CN), даты выпуска и окончания действия, наличие закрытого ключа и родительский центр сертификации;

  • команда show pki certificate выводит таблицу сертификатов: имя, тип (сервер или клиент), субъект (CN), издатель (CN), даты выпуска и окончания действия, признак отзыва, наличие закрытого ключа и наличие сертификата издателя в конфигурации;

  • команда show pki crl выводит списки отзыва: имя центра сертификации, дату обновления и число отозванных сертификатов;

  • формы с именем выводят один объект (если объекта нет, выводится сообщение CA "<name>" does not exist! или Certificate "<name>" does not exist!), форма pem — сам сертификат или список отзыва в формате PEM (например, чтобы передать его другой стороне), форма fingerprint — отпечаток сертификата по алгоритму SHA-256, SHA-384 или SHA-512 (например, чтобы сверить сертификат с полученным от другой стороны).

По датам окончания действия удобно заранее найти сертификаты, которые нужно обновить. Создание ключей и сертификатов командами generate pki … описано в разделах служб, которые их используют (например, Стек протоколов IPsec).

Сертификат можно получить автоматически по протоколу ACME (параметры pki certificate <name> acme: доменное имя, адрес электронной почты, адрес сервера ACME, по умолчанию — сервер Let’s Encrypt). Команда renew certbot запускает внеплановое обновление таких сертификатов. Команда доступна только пользователю уровня «Администратор» (см. Уровни пользователей).

Ключи и сертификаты, полученные на другом устройстве, загружают в конфигурацию PKI команды режима «Администрирование» группы import pki. Файл должен находиться на маршрутизаторе, например быть скопирован в каталог пользователя по SCP. Команды читают файл в формате PEM и задают соответствующий объект PKI:

  • команды import pki ca <ca> … — сертификат (file) или закрытый ключ (key-file) центра сертификации;

  • команды import pki certificate <certificate> … — сертификат (file) или его закрытый ключ (key-file);

  • команда import pki crl <crl> file <file> — список отзыва центра сертификации <crl>;

  • команда import pki dh <dh> file <file> — параметры Диффи — Хеллмана;

  • команды import pki key-pair <key-pair> … — открытый (public-file) или закрытый (private-file) ключ пары ключей;

  • команда import pki openvpn shared-secret <shared-secret> file <file> — общий ключ OpenVPN и его версию.

Перед загрузкой закрытого ключа команда запрашивает его пароль (Enter private key passphrase:); в конфигурации ключ сохраняется без шифрования. Если файл не найден, команда выводит сообщение File not found: <file>, если содержимое файла не удалось прочитать — сообщение Invalid certificate: <file>, Invalid private key or passphrase, Invalid DH parameters: <file> или Invalid public key: <file>.

Если команда выполнена не из режима «Конфигурирование», она только выводит команды set, которые нужно выполнить (сообщение You are not in configure mode, commands to install manually from configure mode:). В режиме «Конфигурирование» выполните ее с префиксом run, например run import pki certificate <certificate> file <file>: значения записываются в конфигурацию, а если параметр уже задан, команда спрашивает, заменить ли его. После загрузки проверьте изменения командой compare и зафиксируйте их командой commit. Команды доступны только пользователю уровня «Администратор» (см. Уровни пользователей).

Список команд

Режим «Администрирование»


pki

Описание:
Выводит все сертификаты центров сертификации, сертификаты и списки отзыва из конфигурации PKI.

Синтаксис:

  • show pki

Режим: «Администрирование».


pki ca

Описание:
Выводит таблицу сертификатов центров сертификации.

Синтаксис:

  • show pki ca

  • show pki ca <name>

Аргументы:

  • <name> — имя сертификата центра сертификации в конфигурации PKI. Необязательный аргумент; если указан, выводится только этот сертификат.

Режим: «Администрирование».


pki ca <name> pem

Описание:
Выводит сертификат центра сертификации в формате PEM.

Синтаксис:

  • show pki ca <name> pem

Аргументы:

  • <name> — имя сертификата центра сертификации в конфигурации PKI.

Режим: «Администрирование».


pki certificate

Описание:
Выводит таблицу сертификатов.

Синтаксис:

  • show pki certificate

  • show pki certificate <name>

Аргументы:

  • <name> — имя сертификата в конфигурации PKI. Необязательный аргумент; если указан, выводится только этот сертификат.

Режим: «Администрирование».


pki certificate <name> pem

Описание:
Выводит сертификат в формате PEM.

Синтаксис:

  • show pki certificate <name> pem

Аргументы:

  • <name> — имя сертификата в конфигурации PKI.

Режим: «Администрирование».


pki certificate <name> fingerprint <hash>

Описание:
Выводит отпечаток сертификата по указанному алгоритму хеширования.

Синтаксис:

  • show pki certificate <name> fingerprint <hash>

Аргументы:

  • <name> — имя сертификата в конфигурации PKI.

  • <hash> — алгоритм хеширования. Возможные значения: sha256, sha384, sha512.

Режим: «Администрирование».


pki crl

Описание:
Выводит списки отзыва сертификатов.

Синтаксис:

  • show pki crl

  • show pki crl <name>

Аргументы:

  • <name> — имя сертификата центра сертификации в конфигурации PKI. Необязательный аргумент; если указан, выводится список отзыва этого центра сертификации.

Режим: «Администрирование».


pki crl <name> pem

Описание:
Выводит список отзыва указанного центра сертификации в формате PEM.

Синтаксис:

  • show pki crl <name> pem

Аргументы:

  • <name> — имя сертификата центра сертификации в конфигурации PKI.

Режим: «Администрирование».


renew certbot

Описание:
Запускает внеплановое обновление сертификатов, полученных по протоколу ACME (pki certificate <name> acme).

Синтаксис:

  • renew certbot

Режим: «Администрирование».

Уровень привилегий: «Администратор».


import pki ca <ca> file <file>

Описание:
Загружает сертификат центра сертификации из файла и добавляет его в конфигурацию PKI.

Синтаксис:

  • import pki ca <ca> file <file>

Аргументы:

  • <ca> — имя центра сертификации в конфигурации (pki ca <ca>). Формат: строка;

  • <file> — путь к файлу сертификата на маршрутизаторе.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


import pki ca <ca> key-file <key-file>

Описание:
Загружает закрытый ключ центра сертификации из файла и добавляет его в конфигурацию PKI. Перед загрузкой команда запрашивает пароль закрытого ключа (если ключ не зашифрован, оставьте поле пустым); в конфигурации ключ сохраняется без шифрования.

Синтаксис:

  • import pki ca <ca> key-file <key-file>

Аргументы:

  • <ca> — имя центра сертификации в конфигурации (pki ca <ca>). Формат: строка;

  • <key-file> — путь к файлу закрытого ключа на маршрутизаторе.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


import pki certificate <certificate> file <file>

Описание:
Загружает сертификат из файла и добавляет его в конфигурацию PKI.

Синтаксис:

  • import pki certificate <certificate> file <file>

Аргументы:

  • <certificate> — имя сертификата в конфигурации (pki certificate <certificate>). Формат: строка;

  • <file> — путь к файлу сертификата на маршрутизаторе.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


import pki certificate <certificate> key-file <key-file>

Описание:
Загружает закрытый ключ сертификата из файла и добавляет его в конфигурацию PKI. Перед загрузкой команда запрашивает пароль закрытого ключа (если ключ не зашифрован, оставьте поле пустым); в конфигурации ключ сохраняется без шифрования.

Синтаксис:

  • import pki certificate <certificate> key-file <key-file>

Аргументы:

  • <certificate> — имя сертификата в конфигурации (pki certificate <certificate>). Формат: строка;

  • <key-file> — путь к файлу закрытого ключа на маршрутизаторе.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


import pki crl <crl> file <file>

Описание:
Загружает список отзыва сертификатов (CRL) из файла и добавляет его к центру сертификации в конфигурации PKI.

Синтаксис:

  • import pki crl <crl> file <file>

Аргументы:

  • <crl> — имя центра сертификации в конфигурации, к которому относится список отзыва (pki ca <crl> crl). Формат: строка;

  • <file> — путь к файлу списка отзыва на маршрутизаторе.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


import pki dh <dh> file <file>

Описание:
Загружает параметры Диффи — Хеллмана из файла и добавляет их в конфигурацию PKI.

Синтаксис:

  • import pki dh <dh> file <file>

Аргументы:

  • <dh> — имя параметров Диффи — Хеллмана в конфигурации (pki dh <dh>). Формат: строка;

  • <file> — путь к файлу параметров на маршрутизаторе.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


import pki key-pair <key-pair> public-file <public-file>

Описание:
Загружает открытый ключ пары ключей из файла и добавляет его в конфигурацию PKI.

Синтаксис:

  • import pki key-pair <key-pair> public-file <public-file>

Аргументы:

  • <key-pair> — имя пары ключей в конфигурации (pki key-pair <key-pair>). Формат: строка;

  • <public-file> — путь к файлу открытого ключа на маршрутизаторе.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


import pki key-pair <key-pair> private-file <private-file>

Описание:
Загружает закрытый ключ пары ключей из файла и добавляет его в конфигурацию PKI. Перед загрузкой команда запрашивает пароль закрытого ключа (если ключ не зашифрован, оставьте поле пустым); в конфигурации ключ сохраняется без шифрования.

Синтаксис:

  • import pki key-pair <key-pair> private-file <private-file>

Аргументы:

  • <key-pair> — имя пары ключей в конфигурации (pki key-pair <key-pair>). Формат: строка;

  • <private-file> — путь к файлу закрытого ключа на маршрутизаторе.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


import pki openvpn shared-secret <shared-secret> file <file>

Описание:
Загружает общий ключ OpenVPN из файла и добавляет его в конфигурацию PKI вместе с версией ключа, указанной в файле.

Синтаксис:

  • import pki openvpn shared-secret <shared-secret> file <file>

Аргументы:

  • <shared-secret> — имя общего ключа в конфигурации (pki openvpn shared-secret <shared-secret>). Формат: строка;

  • <file> — путь к файлу общего ключа на маршрутизаторе.

Режим: «Администрирование».

Уровень привилегий: «Администратор».