PKI

Сервис управления инфраструктурой открытых ключей в ARMA Стена позволяет решать следующие задачи по созданию:

  • удостоверяющего центра;

  • сертификата;

  • пары ключей;

  • ключей Диффи-Хеллмана, OpenVPN, WireGuard и SSH-ключей.

Сертификаты могут быть записаны как в конфигурацию, так и в виде файлов, сохраняемых в директории «/config/auth/». Имена созданных файлов будут идентичны указанному имени, например, «arma-test.pem», «arma-test.key», «cert-req.csr».

Просмотр информации компонентов PKI

Для просмотра содержимого каких-либо созданных компонентов PKI необходимо в конфигурационном режиме ввести команду:

show pki <type> <имя>

где:

  • <type> – тип компонента PKI. Принимаются следующие значения: «ca», «certificate», «key-pair», «openvpn». Необязательный параметр – без указания типа будут отображены все компоненты PKI;

  • <имя> – имя компонента PKI, например, «arma-ca». Необязательный параметр – без указания имени будут отображены все компоненты PKI заданного типа.

Для просмотра в эксплуатационном режиме содержимого каких-либо созданных компонентов PKI необходимо ввести команду:

admin@ngfwos:~$ show pki <type> <имя> pem

Для просмотра информации о параметрах компонентов PKI необходимо ввести команду:

run show pki <type> <имя>

где <type> – тип компонента PKI. Принимаются следующие значения: «ca», «certificate», «crl» (см. Рисунок – Просмотр параметров УЦ).

../../../../_images/ngfw.r.cli.pki_1.1.png

Рисунок – Просмотр параметров УЦ

Удостоверяющий центр

Создание удостоверяющего центра

Удостоверяющий центр включает своё имя в выпущенные им сертификаты и подписывает их при помощи собственного секретного ключа.

Инструментарий удостоверяющего центра позволяет выполнять:

  • проверку подлинности пользователей сертификатов;

  • выдачу сертификатов пользователям;

  • актуализацию и публикацию списков отозванных сертификатов;

  • аннулирование сертификатов.

Для генерации ключа и сертификата УЦ необходимо в режиме конфигурирования ввести следующую команду:

run generate pki ca install <имя_УЦ>

где <имя_УЦ> – имя сертификата УЦ, например, «arma-ca».

После ввода вышеуказанной команды будут выводиться запросы, которые могут содержать в квадратных скобках допустимые значения и в круглых скобках предлагаемый ответ по умолчанию. Потребуется указать следующие значения параметров сертификата УЦ, представленные в таблице (см. Таблица «Значения параметров сертификата УЦ»), нажимая для подтверждения клавишу «Enter».

Таблица «Значения параметров сертификата УЦ»

Запрос

Ответ

Enter private key type: [rsa, dsa, ec] (Default: rsa)

rsa

Enter private key bits: (Default: 2048)

2048

Enter country code: (Default: GB)

RU

Enter state: (Default: Some-State)

Moscow

Enter locality: (Default: Some-City)

Moscow

Enter organization name: (Default: NGFWOS)

NGFWOS

Enter common name: (Default: ngfwos.net)

ngfwos.net

Enter how many days certificate will be valid: (Default: 1825)

365

Do you want to encrypt the private key with a passphrase? [y/N]

n

Значения параметров сертификата приведены в качестве примера.

После успешной генерации появится следующее уведомление – «2 value(s) installed. Use "compare" to see the pending changes, and "commit" to apply.».

Затем следует зафиксировать изменения с помощью ввода команд «commit» и «save».

В результате сгенерированный сертификат и ключ УЦ будут сохранены в конфигурации ARMA Стена.

Для генерации ключа и сертификата УЦ и сохранения их в виде файлов с расширениями «.pem» и «.key» необходимо в режиме конфигурирования ввести следующую команду:

run generate pki ca file <имя_УЦ>

После ввода вышеуказанной команды потребуется указать значения параметров сертификата УЦ, представленные в таблице (см. Таблица «Значения параметров сертификата УЦ»).

В результате, в директории «/config/auth/» будут созданы файлы, имена которых будут идентичны указанному имени УЦ, например, «arma-ca.pem» и «arma-ca.key».

Создание подписанного удостоверяющего центра

Для генерации ключа и сертификата УЦ, подписанного вышестоящим УЦ, необходимо в режиме конфигурирования ввести следующую команду:

run generate pki ca sign <вышестоящий_УЦ> install <имя_УЦ>

где <имя_УЦ> – имя сертификата УЦ, который будет подписан вышестоящим УЦ, например, «arma-ca-sign».

После ввода вышеуказанной команды будут выводиться запросы, которые могут содержать в квадратных скобках допустимые значения и в круглых скобках предлагаемый ответ по умолчанию. Потребуется указать следующие значения параметров сертификата УЦ, представленные в таблице (см. Таблица «Значения параметров подписанного сертификата УЦ»), нажимая для подтверждения клавишу «Enter».

Таблица «Значения параметров подписанного сертификата УЦ»

Запрос

Ответ

Do you already have a certificate request? [y/N]

n

Enter private key type: [rsa, dsa, ec] (Default: rsa)

rsa

Enter private key bits: (Default: 2048)

2048

Enter country code: (Default: GB)

RU

Enter state: (Default: Some-State)

Moscow

Enter locality: (Default: Some-City)

Moscow

Enter organization name: (Default: NGFWOS)

NGFWOS

Enter common name: (Default: ngfwos.net)

ngfwos.net

Enter how many days certificate will be valid: (Default: 1825)

365

Do you want to encrypt the private key with a passphrase? [y/N]

n

Значения параметров сертификата приведены в качестве примера.

После успешной генерации появится следующее уведомление – «2 value(s) installed. Use "compare" to see the pending changes, and "commit" to apply.».

Затем следует зафиксировать изменения с помощью ввода команд «commit» и «save».

В результате сгенерированный сертификат и ключ УЦ будут сохранены в конфигурации ARMA Стена.

Для генерации ключа и сертификата УЦ, подписанного вышестоящим УЦ, и сохранения их в виде файлов с расширениями «.pem» и «.key» необходимо в режиме конфигурирования ввести следующую команду:

run generate pki ca sign <вышестоящий_УЦ> file <имя_УЦ>

После ввода вышеуказанной команды потребуется указать значения параметров сертификата УЦ, представленные в таблице (см. Таблица «Значения параметров подписанного сертификата УЦ»).

Установка сертификата УЦ

Для установки сертификата УЦ, необходимо в режиме конфигурирования ввести следующую команду:

set pki ca <имя_УЦ> certificate <сертификат_УЦ>

где <сертификат_УЦ> – содержимое сертификата УЦ в формате PEM. Значение не должно содержать пробелы и переносы строк.

Затем следует зафиксировать изменения с помощью ввода команд «commit» и «save».

В результате установленный сертификат УЦ будет сохранён в конфигурации ARMA Стена.

Сертификаты

Создание запроса на подписание сертификата

Для генерации запроса на подписание сертификата необходимо в режиме конфигурирования ввести следующую команду:

run generate pki certificate install <имя_серт>

где <имя_серт> – имя запроса на подписание сертификата, например, «cert-req».

После ввода вышеуказанной команды будут выводиться запросы, которые могут содержать в квадратных скобках допустимые значения и в круглых скобках предлагаемый ответ по умолчанию. Потребуется указать следующие значения параметров сертификата, представленные в таблице (см. Таблица «Значения параметров сертификата»), нажимая для подтверждения клавишу «Enter».

Таблица «Значения параметров сертификата»

Запрос

Ответ

Enter private key type: [rsa, dsa, ec] (Default: rsa)

rsa

Enter private key bits: (Default: 2048)

2048

Enter country code: (Default: GB)

RU

Enter state: (Default: Some-State)

Moscow

Enter locality: (Default: Some-City)

Moscow

Enter organization name: (Default: NGFWOS)

NGFWOS

Enter common name: (Default: ngfwos.net)

ngfwos.net

Do you want to configure Subject Alternative Names? [y/N]

n

Do you want to encrypt the private key with a passphrase? [y/N]

n

Значения параметров сертификата приведены в качестве примера.

Автоматически будет выведено содержимое запроса на создание сертификата:

Certificate request:
-----BEGIN CERTIFICATE REQUEST-----
a6BrgEuka
-----END CERTIFICATE REQUEST-----

Отображённое значение следует вводить при подписании сертификата удостоверяющим центром (см. «Подписание сертификата» настоящего руководства).

Затем следует зафиксировать изменения с помощью ввода команд «commit» и «save».

Для генерации закрытого ключа и запроса на подписание сертификата и сохранения в виде файлов необходимо в режиме конфигурирования ввести следующую команду:

run generate pki certificate file <имя_серт>

В результате, в директории «/config/auth/» будут созданы файлы, имена которых будут идентичны указанному имени, например, «cert-req.csr» и «cert-req.key».

Создание подписанного сертификата

В качестве примера представлено описание создания сертификата сервера OpenVPN, подписанного удостоверяющим центром.

Для генерации ключа и сертификата сервера необходимо в режиме конфигурирования ввести следующую команду:

run generate pki certificate sign <имя_УЦ> install <имя_сертификата>

где:

  • <имя_УЦ> – имя сертификата УЦ, например, «arma-ca»;

  • <имя_сертификата> – имя сертификата, например, «server1».

После ввода вышеуказанной команды потребуется указать следующие значения параметров сертификата, представленные в таблице (см. Таблица «Значения параметров сертификата»), нажимая для подтверждения клавишу «Enter».

Таблица «Значения параметров сертификата»

Запрос

Ответ

[1] Do you already have a certificate request? [y/N]

n

Enter private key type: [rsa, dsa, ec] (Default: rsa)

rsa

Enter private key bits: (Default: 2048)

2048

Enter country code: (Default: GB)

RU

Enter state: (Default: Some-State)

Moscow

Enter locality: (Default: Some-City)

Moscow

Enter organization name: (Default: NGFWOS)

NGFWOS

Enter common name: (Default: ngfwos.net)

ngfwos.net

Do you want to configure Subject Alternative Names? [y/N]

n

Enter how many days certificate will be valid: (Default: 1825)

365

Enter certificate type: (client, server) (Default: server)

server

Do you want to encrypt the private key with a passphrase? [y/N]

n

Значения параметров сертификата приведены в качестве примера.

Затем следует зафиксировать изменения с помощью ввода команд «commit» и «save».

Для генерации ключа и сертификата сервера и сохранения в виде файлов необходимо в режиме конфигурирования ввести следующую команду:

run generate pki certificate sign <имя_УЦ> file <имя_сертификата>

Подписание сертификата

Для подписания сертификата удостоверяющим центром при наличии запроса необходимо ввести следующую команду:

run generate pki certificate sign <имя_УЦ> install <имя_сертификата>

После ввода вышеуказанной команды потребуется указать следующие значения параметров сертификата, представленные в таблице (см. Таблица «Значения параметров сертификата»), нажимая для подтверждения клавишу «Enter».

Таблица «Значения параметров сертификата»

Запрос

Ответ

Do you already have a certificate request? [y/N]

y

[2] Paste certificate request and press enter:

содержимое CSR

Enter how many days certificate will be valid: (Default: 1825)

365

Enter certificate type: (client, server) (Default: server)

server

Для подписания сертификата при наличии запроса и сохранения его в виде файла необходимо ввести следующую команду:

run generate pki certificate sign <имя_УЦ> file <имя_сертификата>

После ввода вышеуказанной команды потребуется указать следующие значения параметров сертификата, представленные в таблице (см. Таблица «Значения параметров сертификата»).

Создание самоподписанного сертификата

Для генерации самоподписанного сертификата необходимо ввести следующую команду:

run generate pki certificate self-signed install <имя_сертификата>

где <имя_сертификата> – имя сертификата, например, «openvpn-local».

После ввода вышеуказанной команды потребуется указать следующие значения параметров сертификата, представленные в таблице (см. Таблица «Значения параметров сертификата»), нажимая для подтверждения клавишу «Enter».

Таблица «Значения параметров сертификата»

Запрос

Ответ

Enter private key type: [rsa, dsa, ec] (Default: rsa)

ec

Enter private key bits: (Default: 256)

256

Enter country code: (Default: GB)

RU

Enter state: (Default: Some-State)

Moscow

Enter locality: (Default: Some-City)

Moscow

Enter organization name: (Default: NGFWOS)

NGFWOS

Enter common name: (Default: ngfwos.net)

ngfwos.net

Do you want to configure Subject Alternative Names? [y/N]

n

Enter how many days certificate will be valid: (Default: 365)

365

Enter certificate type: (client, server) (Default: server)

server

Do you want to encrypt the private key with a passphrase? [y/N]

n

Значения параметров сертификата приведены в качестве примера.

Затем следует зафиксировать изменения с помощью ввода команд «commit» и «save».

Для генерации ключа и самоподписанного сертификата и сохранения их в виде файлов с расширениями «.pem» и «.key» необходимо в режиме конфигурирования ввести следующую команду:

run generate pki certificate self-signed file <имя_сертификата>

После ввода вышеуказанной команды потребуется указать значения параметров сертификата, представленные в таблице (см. Таблица «Значения параметров сертификата»).

Установка сертификата

Для установки сертификата, необходимо в режиме конфигурирования ввести следующую команду:

set pki certificate <имя_сертификата> certificate <сертификат>

где <сертификат> – содержимое сертификата в формате PEM. Значение не должно содержать пробелы и переносы строк.

Затем следует зафиксировать изменения с помощью ввода команд «commit» и «save».

В результате установленный сертификат будет сохранён в конфигурации ARMA Стена.

Списки отзыва сертификатов

Списки отзыва позволяют сертификат признать аннулированным, не дожидаясь даты прекращения действия этого сертификата.

Импорт списка отзыва сертификатов

Для указания удалённого источника импорта списка отзыва сертификатов необходимо ввести следующую команду:

set pki ca <имя_УЦ> crl-update-location <источник>

где <источник> – путь или URI к файлу списка отзыва сертификатов.

Поддерживаются следующие источники:

  • http://<user>:<passwd>@<host>/<file> – файл по протоколу HTTP;

  • https://<user>:<passwd>@<host>/<file> – файл по протоколу HTTPS;

  • git+https://<user>:<passwd>@<host>/<file> – файл по протоколу HTTPS из удалённого репозитория;

  • ftp://<user>:<passwd>@<host>/<file> – файл по протоколу FTP;

  • sftp://<user>:<passwd>@<host>/<file> – файл по протоколу SFTP;

  • scp://<user>:<passwd>@<host>:/<file> – файл на удалённом сервере по протоколу SCP;

  • tftp://<host>/<file> – файл по протоколу TFTP.

Параметры URI:

  • <user> – имя пользователя на удалённом сервере;

  • <passwd> – пароль пользователя;

  • <host> – сетевой адрес удалённого сервера (IP-адрес или доменное имя);

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

Для импорта списка отзыва сертификатов из удалённого источника необходимо ввести следующую команду:

run update pki crl <имя_УЦ>

Возможно создание задачи планировщика для автоматического обновления списка отзыва сертификатов из удалённого источника (см. «Планировщик задач Cron» настоящего руководства).

Для импорта локального файла списка отзыва сертификатов необходимо ввести следующую команду:

run import pki crl <имя_УЦ>

Создание задачи планировщика для автоматического обновления списка отзыва сертификатов из локального файла не поддерживается.

Ключ Диффи-Хеллмана

Для создания ключа Диффи-Хеллмана необходимо ввести следующую команду:

run generate pki dh install <имя_ключа>

где <имя_ключа> – имя ключа Диффи-Хеллмана, например, «dh-10».

После ввода вышеуказанной команды потребуется указать размер ключа на запрос «Enter DH parameters key size: (Default: 2048)» и нажать клавишу «Enter». По умолчанию предлагается размер – 2048 бит.

Затем следует зафиксировать изменения с помощью ввода команд «commit» и «save».

В результате созданный ключ Диффи-Хеллмана будет сохранён в конфигурации ARMA Стена.

Для создания ключа Диффи-Хеллмана и сохранения в виде файла необходимо в режиме конфигурирования ввести следующую команду:

run generate pki dh file <имя_ключа>

В результате, в директории «/config/auth/» будет создан файл в формате «PEM», имя которого будет идентично указанному имени ключа, например, «dh-10.pem».

Пара ключей

Создание пары ключей

Для генерации открытого и закрытого ключей необходимо ввести следующую команду:

run generate pki key-pair install <имя_ключа>

где <имя_ключа> – имя, например, «kp-test».

После ввода вышеуказанной команды потребуется указать следующие значения параметров сертификата, представленные в таблице (см. Таблица «Значения параметров»), нажимая для подтверждения клавишу «Enter».

Таблица «Значения параметров»

Запрос

Ответ

Enter private key type: [rsa, dsa, ec] (Default: rsa)

rsa

Enter private key bits: (Default: 2048)

2048

Do you want to encrypt the private key with a passphrase? [y/N]

n

Do you want to install the public key? [Y/n]

y

Do you want to install the private key? [Y/n]

y

Значения параметров пары ключей приведены в качестве примера.

Затем следует зафиксировать изменения с помощью ввода команд «commit» и «save».

Для генерации открытого и закрытого ключей и сохранения их в виде файлов с расширениями «.pem» и «.key» необходимо в режиме конфигурирования ввести следующую команду:

run generate pki key-pair file <имя_ключа>

После ввода вышеуказанной команды потребуется указать значения параметров, представленные в таблице (см. Таблица «Значения параметров»).

Openvpn ключ

Создание Openvpn ключа

Для генерации Openvpn ключа необходимо ввести следующую команду:

run generate pki openvpn shared-secret install <имя_ключа>

где <имя_ключа> – имя, например, «ovpnkey-test».

Затем следует зафиксировать изменения с помощью ввода команд «commit» и «save».

Для генерации Openvpn ключа и сохранения его в виде файла с расширением «.key» необходимо в режиме конфигурирования ввести следующую команду:

run generate pki openvpn shared-secret file <имя_ключа>

OPENSSH ключ

Создание OPENSSH ключа

Для генерации открытого и закрытого ключей необходимо ввести следующую команду:

run generate pki ssh-key install <имя_ключа>

где <имя_ключа> – имя, например, «sshkey-test».

После ввода вышеуказанной команды потребуется указать следующие значения параметров, представленные в таблице (см. Таблица «Значения параметров»), нажимая для подтверждения клавишу «Enter».

Для генерации открытого и закрытого ключей и сохранения их в виде файлов с расширениями «.pem» и «.key» необходимо в режиме конфигурирования ввести следующую команду:

run generate pki ssh-key file <имя_ключа>

После ввода вышеуказанной команды потребуется указать значения параметров, представленные в таблице (см. Таблица «Значения параметров»).