Skip to main content

Замена сертификата (веб - интерфейсе) KUMA

Общая информация

После установки Ядра KUMA установщик создает следующие сертификаты в папке /opt/kaspersky/kuma/core/certificates:

    Самоподписанный корневой сертификат ca.cert с ключом ca.key. Подписывает все другие сертификаты, которые используются для внутренней связи между компонентами KUMA. Сертификат internal.cert, подписанный корневым сертификатом, и ключ internal.key сервера Ядра. Используется для внутренней связи между компонентами KUMA. Сертификат веб-консоли KUMA external.cert и ключ external.key. Используется в веб-консоли KUMA и для запросов REST API.

    Между взаимодействием компонентов KUMA не должно быть SSL-инспекции


    Запрос сертификата от центра сертификации CA

    Создаем файл openssl.cnf:

    =====это пример, вписываем свои значения======
    [ req ]
    default_bits = 4096 # RSA key size
    encrypt_key = no # Protect private key
    default_md = sha256 # MD to use
    utf8 = yes # Input is UTF-8
    string_mask = utf8only # Emit UTF-8 strings
    prompt = no # Prompt for DN
    distinguished_name = server_dn # DN template
    req_extensions = server_reqext # Desired extensions
    [ server_dn ]
    countryName = RU # ISO 3166
    localityName = Moscow
    organizationName = MYCOMPANY
    organizationalUnitName = SOC
    commonName = kuma.mycompany.ru # Should match a SAN under alt_names
    
    [ server_reqext ]
    basicConstraints = CA:FALSE
    keyUsage = critical,digitalSignature,keyEncipherment
    extendedKeyUsage = serverAuth,clientAuth
    subjectKeyIdentifier = hash
    subjectAltName = @alt_names
    [alt_names]
    DNS.1 = kuma.mycompany.ru
    IP.1 = 1.2.3.4

    Делаем запрос на сертификат:

    openssl req -new -nodes -sha256 -out external.csr -config /root/cert/openssl.cnf -keyout external.key

    В текущем каталоге будут созданы файлы external.key (файл с закрытым ключом ) и external.csr (файл запроса на сертификат)

    Отдаем запрос на сертификат в центр сертификации. От центра сертификации должны получить сертификат сервера и корневой сертификат центра сертификации и все сертификаты промежуточных центров сертификации если они есть.

      Все сертификаты должны быть в формате pem
      ФайлPEM с(BASE64).
      сертификатомСодержимое сертификатов должно выглядеть - ( -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----)

      Полученные сертификаты необходимо назватьобъединить в одну полную цепочку сертификатов в правильном порядке.

      openssl x509 -inform PEM -in server.pem > external.cert
      Файл сopenssl ключомx509 -inform PEM -in subca.pem >> external.keycert
      Обаopenssl файлаx509 -inform PEM -in root.pem >> external.cert

      Полученный файл external.cert необходимо положитьпроверить вна папкукорректность (должен быть вывод списка цепочки сертификатов):

      /opt/kaspersky/kuma/core/certificates/openssl crl2pkcs7 -nocrl -certfile  external.cert  | openssl pkcs7 -print_certs -noout
      
      openssl verify external.cert
      #external.cert: OK
      После
      чего

      Проверяем перезапуститькорректность kumaполученного coreсертификата и ключа (результат должен совпадать):

      openssl x509 -noout -modulus -in external.cert | openssl md5
      #(stdin)= 239994c3bd2a90507a548bf373127e18
      openssl rsa -noout -modulus -in external.key | openssl md5
      #(stdin)= 239994c3bd2a90507a548bf373127e18

       

      ВЗамена в обычной инсталляции (не кластер ядра)

      Перед заменой пары external.cert external.key создайте их резервную копию.

      Взять сертификат компании (вероятно это будет pfx), но может и другие форматы - например der.DER.
      Сконвертировать его в ключ и сертификат в формате pemPEM (BASE64) и положить в папку например, для конвертации из PFX это будетбудут команды:команды ниже.
      Получение ключа из kumaWebIssuedByCorporateCA.pfx:
      openssl pkcs12 -in kumaWebIssuedByCorporateCA.pfx -nocerts -out external.pem
      Получение сертификата из kumaWebIssuedByCorporateCA.pfx:
      openssl pkcs12 -in kumaWebIssuedByCorporateCA.pfx -nokeys -out external.cert
      (Опционально) если ключ версии PKCS#1 то его нужно сконвертировать в PKCS#8, это можно сделать соедующей командой:
      openssl pkcs8 -in private.key -topk8 -nocrypt -out new_private.key
      Удаление пароля из ключа:
      openssl rsa -in external.pem -out external.key
      Полученные файлы надо положить в папку: 
      /opt/kaspersky/kuma/certificatescore/certificates/
      Выполнить смену владельца этих файлов: 
      chown kuma:kuma external.cert external.key

      Перезапустить ядро: 

      systemctl restart kuma-core



      ВЗамена в оказоустойчивом ядре

      1. На контрольной машине или Control Plane Master получить список подов и найти кору

      k0s kubectl get pod -A

      2. Зайти в шел пода коры и выполнить бэкап сертификатов. (название core-deployment в каждой инсталяции уникально)

      k0s kubectl exec -n kuma --stdin --tty core-deployment-779f8bf646-djszw -- /bin/bash

      3. Скопировать новый сертификат с файловой системы Control Plane Master на под коры, выгрузить сертификат и ключ

      k0s kubectl cp kuma-poc.pfx -n kuma core-deployment-779f8bf646-djszw:/opt/kaspersky/kuma/core/certificates

      4. Найти деплоймент коры

      k0s kubectl get deployments

      5. Выполнить рестарт деплоймента коры

      k0s kubectl rollout restart deployment -n kuma core-deployment