Настройка TLS

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

Данное руководство содержит инструкции по генерации сертификатов и последующей конфигурации АП ЕСИА Шлюз.Коннект для работы с ними.

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

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

Генерация корневого сертификата CA

  1. Создайте необходимые директории и сервисные файлы для учета выданных сертификатов:

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

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

         [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
    
  3. Создайте приватный ключ 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
    
  4. Создайте 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 eshk.test.local.key 4096
    
  2. Создайте запрос на сертификат (CSR) и укажите целевое доменное имя (например, eshk.test.local):

         openssl req -new \
                     -key eshk.test.local.key \
                     -out eshk.test.local.csr \
                     -subj "/CN=eshk.test.local" \
                     -addext "subjectAltName = DNS:eshk.test.local"
    
  3. Выпуск сертификата:

         openssl ca \
                 -batch \
                 -in eshk.test.local.csr \
                 -out eshk.test.local.crt.tmp \
                 -keyfile test_ca.key \
                 -cert test_ca.crt \
                 -days 365 \
                 -config openssl.cfg
         openssl x509 \
                 -in eshk.test.local.crt.tmp \
                 -out eshk.test.local.crt \
                 -outform PEM
         rm eshk.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)
eshk.test.local.csr Запрос на TLS сертификат
eshk.test.local.crt Выданный TLS сертификат
eshk.test.local.key Приватный ключ выданного TLS сертификата

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

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

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

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

  3. В боковом меню выберите раздел Настройки:

    Изображение раздела Настройки в боковом меню административной панели

  4. На открывшейся странице выберите вкладку Настройки АП:

    Изображение вкладки Настройки АП на странице Настройки

  5. Для применения индивидуальных настроек:

    • Введите доменное имя в поле Доменное имя, соответствующее вашему сертификату.
    • Загрузите файл сертификата (или цепочку сертификатов) в поле Сертификаты/цепочки (бандлы).

    Изображение настроек TLS на вкладке Настройки АП

  6. Нажмите кнопку «Сохранить» и подтвердите действие в появившемся окне.

Внимание

После сохранения новой конфигурации приложение будет перезагружено. Сервис некоторое время будет недоступен.

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

  • Настройка TLS
  • Генерация самоподписанного TLS сертификата
  • Генерация корневого сертификата CA
  • Создание TLS сертификата
  • Справочная таблица сгенерированных файлов
  • Смена TLS сертификата