Перейти к основному содержимому

Настройка TLS

Transport Layer Security (TLS) — протокол криптографической защиты данных, обеспечивающий безопасную передачу информации между узлами сети.

По умолчанию устройства поставляются со встроенными сертификатами, а также со стандартным доменным именем omnibox.kgost.ru . В случае, если заводские параметры не соответствуют внутренним политикам безопасности организации или техническим требованиям инфраструктуры, они могут быть заменены на пользовательские.

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

Генерация самоподписанного TLS сертификата

Для управления криптографическими ключами используется утилита Openssl, которая является отраслевым стандартом безопасности и полностью совместима с современными сетевыми протоколами.

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

  1. Создайте необходимые директории и сервисные файлы для учета выданных сертификатов
mkdir -p db
touch db/index.txt
echo "1000" > db/serial
  1. Создайте файл openssl.cfg, который будет использоваться для определения параметров выпуска сертификатов.
примечание

В секции [crl_section] (параметр URI.1) необходимо указать корректный URL, по которому в вашей сети будет доступен список отзыва (CRL).

openssl.cfg
[ca]
default_ca = CA_default

[CA_default]
crl_extensions = crl_ext
database = db/index.txt
default_md = sha256
new_certs_dir = db
policy = policy_anything
serial = db/serial
x509_extensions = server_cert
copy_extensions = copy

[policy_anything]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional

[server_cert]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
crlDistributionPoints = @crl_section

[crl_ext]
authorityKeyIdentifier = keyid:always

[crl_section]
URI.1 = http://example.com/test_ca.crl

[req]
prompt = no
x509_extensions = req_v3_ca

[req_v3_ca]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:TRUE
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
  1. Создайте приватный ключ (test_ca.key) и сертификат (test_ca.crt) со сроком действия 365 дней:
openssl req -nodes -x509 -sha256 \
-newkey rsa:4096 \
-keyout test_ca.key \
-out test_ca.crt \
-days 365 \
-subj "/CN=Test CA" \
-config openssl.cfg
  1. Создайте CRL (Certificate Revocation List) файл и конвертируйте его в формат DER:
openssl ca -gencrl \
-keyfile test_ca.key \
-cert test_ca.crt \
-out test_ca.crl.pem \
-crldays 365 \
-config openssl.cfg && \
openssl crl -in test_ca.crl.pem -out test_ca.crl -outform DER && \
rm test_ca.crl.pem
примечание

CRL должен раздаваться в сети в формате DER.

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

Для создания сертификата устройства требуются файлы, полученные на предыдущем этапе.

  1. Создайте закрытый ключ длиной 4096 бит:
openssl genrsa -out klyuchnik.test.local.key 4096
  1. Создайте запрос на сертификат (CSR) и укажите целевое доменное имя (например, klyuchnik.test.local):
openssl req -new \
-key klyuchnik.test.local.key \
-out klyuchnik.test.local.csr \
-subj "/CN=klyuchnik.test.local" \
-addext "subjectAltName = DNS:klyuchnik.test.local"
  1. Выпуск сертификата:
openssl ca \
-batch \
-in klyuchnik.test.local.csr \
-out klyuchnik.test.local.crt.tmp \
-keyfile test_ca.key \
-cert test_ca.crt \
-days 365 \
-config openssl.cfg && \
openssl x509 \
-in klyuchnik.test.local.crt.tmp \
-out klyuchnik.test.local.crt \
-outform PEM && \
rm klyuchnik.test.local.crt.tmp

Справочная таблица сгенерированных файлов

ФайлОписание
db/index.txtБаза данных по выданным сертификатам
db/serialСерийный номер очередного выдаваемого сертификата
openssl.cfgКонфигурация openssl для выдачи корневого сертификата
test_ca.crtКорневой сертификат CA
test_ca.keyПриватный ключ корневого сертификата CA
test_ca.crlСписок отзыва выданных TLS сертификатов (CRL)
klyuchnik.test.local.csrЗапрос на TLS сертификат
klyuchnik.test.local.crtВыданный TLS сертификат
klyuchnik.test.local.keyПриватный ключ выданного TLS сертификата

Смена TLS сертификата

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

  1. Запустите устройство в режиме восстановления.

  2. Откройте в браузере административную панель.

  3. Пропустить шаг сброса пароля администратора (шаг 1).

пропускаем первый шаг - смена пароля администратора
  1. Для применения индивидуальных настроек:
  • В блоке «Домен и сертификаты» введите доменное имя, соответствующее вашему сертификату.
  • Загрузите файл сертификата (или цепочку сертификатов) в поле «Сертификаты/цепочки (бандлы)».
  • Подтвердите действие нажатием кнопки «Загрузить».
индивидуальные настройки
  1. Для возврата к заводским установкам
  • Активируйте опцию «Восстановить настройки по умолчанию».
  • Нажмите кнопку «Загрузить».
восстановить настройки по умолчанию

После перезагрузки система применит новые параметры и будет доступна по обновленному доменному имени с использованием установленного TLS-сертификата.