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» (см. Рисунок – Просмотр параметров УЦ).
Рисунок – Просмотр параметров УЦ
Удостоверяющий центр
Создание удостоверяющего центра
Удостоверяющий центр включает своё имя в выпущенные им сертификаты и подписывает их при помощи собственного секретного ключа.
Инструментарий удостоверяющего центра позволяет выполнять:
проверку подлинности пользователей сертификатов;
выдачу сертификатов пользователям;
актуализацию и публикацию списков отозванных сертификатов;
аннулирование сертификатов.
Для генерации ключа и сертификата УЦ необходимо в режиме конфигурирования ввести следующую команду:
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 |
После ввода содержимого запроса на подписание сертификата необходимо дважды нажать клавишу «Enter».
Для подписания сертификата при наличии запроса и сохранения его в виде файла необходимо ввести следующую команду:
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 <имя_ключа>После ввода вышеуказанной команды потребуется указать значения параметров, представленные в таблице (см. Таблица «Значения параметров»).