Документация: ПО Факел — разрабатываемая версия
Инфраструктура открытых ключей¶
Обзор¶
Инфраструктура открытых ключей (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¶
Синтаксис:
show pki
Режим: «Администрирование».
pki ca¶
Синтаксис:
show pki ca
show pki ca
<name>
Аргументы:
<name>— имя сертификата центра сертификации в конфигурации PKI. Необязательный аргумент; если указан, выводится только этот сертификат.
Режим: «Администрирование».
pki ca <name> pem¶
Синтаксис:
show pki ca
<name>pem
Аргументы:
<name>— имя сертификата центра сертификации в конфигурации PKI.
Режим: «Администрирование».
pki certificate¶
Синтаксис:
show pki certificate
show pki certificate
<name>
Аргументы:
<name>— имя сертификата в конфигурации PKI. Необязательный аргумент; если указан, выводится только этот сертификат.
Режим: «Администрирование».
pki certificate <name> 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¶
Синтаксис:
show pki crl
<name>pem
Аргументы:
<name>— имя сертификата центра сертификации в конфигурации PKI.
Режим: «Администрирование».
renew certbot¶
pki certificate <name> acme).Синтаксис:
renew certbot
Режим: «Администрирование».
Уровень привилегий: «Администратор».
import pki ca <ca> file <file>¶
Синтаксис:
import pki ca
<ca>file<file>
Аргументы:
<ca>— имя центра сертификации в конфигурации (pki ca <ca>). Формат: строка;<file>— путь к файлу сертификата на маршрутизаторе.
Режим: «Администрирование».
Уровень привилегий: «Администратор».
import pki ca <ca> key-file <key-file>¶
Синтаксис:
import pki ca
<ca>key-file<key-file>
Аргументы:
<ca>— имя центра сертификации в конфигурации (pki ca <ca>). Формат: строка;<key-file>— путь к файлу закрытого ключа на маршрутизаторе.
Режим: «Администрирование».
Уровень привилегий: «Администратор».
import pki certificate <certificate> file <file>¶
Синтаксис:
import pki certificate
<certificate>file<file>
Аргументы:
<certificate>— имя сертификата в конфигурации (pki certificate <certificate>). Формат: строка;<file>— путь к файлу сертификата на маршрутизаторе.
Режим: «Администрирование».
Уровень привилегий: «Администратор».
import pki certificate <certificate> key-file <key-file>¶
Синтаксис:
import pki certificate
<certificate>key-file<key-file>
Аргументы:
<certificate>— имя сертификата в конфигурации (pki certificate <certificate>). Формат: строка;<key-file>— путь к файлу закрытого ключа на маршрутизаторе.
Режим: «Администрирование».
Уровень привилегий: «Администратор».
import pki crl <crl> file <file>¶
Синтаксис:
import pki crl
<crl>file<file>
Аргументы:
<crl>— имя центра сертификации в конфигурации, к которому относится список отзыва (pki ca <crl> crl). Формат: строка;<file>— путь к файлу списка отзыва на маршрутизаторе.
Режим: «Администрирование».
Уровень привилегий: «Администратор».
import pki dh <dh> file <file>¶
Синтаксис:
import pki dh
<dh>file<file>
Аргументы:
<dh>— имя параметров Диффи — Хеллмана в конфигурации (pki dh <dh>). Формат: строка;<file>— путь к файлу параметров на маршрутизаторе.
Режим: «Администрирование».
Уровень привилегий: «Администратор».
import pki key-pair <key-pair> public-file <public-file>¶
Синтаксис:
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>¶
Синтаксис:
import pki key-pair
<key-pair>private-file<private-file>
Аргументы:
<key-pair>— имя пары ключей в конфигурации (pki key-pair <key-pair>). Формат: строка;<private-file>— путь к файлу закрытого ключа на маршрутизаторе.
Режим: «Администрирование».
Уровень привилегий: «Администратор».