Авторские статьи

Автоматизация добавления своих сертификатов в Linux системах.


Приходится добавлять свои сертификаты в браузеры для проверки трафика такими системами как Data Leak Prevention (DLP), Unified threat management (UTM), Next-Generation Firewall (NGFW) и т.д. Учитывая количество учётных записей на вашем предприятии и срок действия сертификатов, лучше данный процесс автоматизировать через вашу систему оркестровки/развёртывания.

Mozilla Firefox

  1. Предположим что у нас сертификаты UTM.crt и DLP.crt, которые нужно добавить в браузеры. Если у вас сертификаты *.cer, то для конвертации в crt может понадобиться команда типа sudo openssl x509 -inform DER -in UTM.cer -out UTM.crt
  2. Скопируйте *.crt в каталог /usr/local/share/ca-certificates/
    sudo cp *.crt /usr/local/share/ca-certificates/
    sudo chown root:root /usr/local/share/ca-certificates/*.crt
  3. В файле /usr/lib/firefox/distribution/policies.json, если он существует дополните массив Install полными путями к своим сертификатам.

    Мой пример с Astra Linux 1.7.

    {
        "policies": {
            "ImportEnterpriseRoots": true,
            "Certificates": {
                "Install": [
                    "/etc/ipa/ca.crt",
                    "/usr/local/share/ca-certificates/DLP.crt",
                    "/usr/local/share/ca-certificates/UTM.crt"
                ]
           }
        }
    }
    
  4. Готово! Так как для Mozilla Firefox используются системные пути, единые для всех, то все учётные записи пользователей автоматом будут использовать ваши сертфикаты. А в настройках браузера можно наблюдать плашку Ваш браузер управляется Вашей организацией.

Chromium и основанные на нём: Yandex Browser и etc

  1. Для импорта сертификата в базу сертификатов необходима утилита certutil из состава пакета libnss3-tools. Установить пакет: sudo apt install libnss3-tools
  2. В любой тестовой учётной записи пользователя удалите каталог ~/.pki/, если он существует.
  3. Создайте пользователю эталонную структуру каталога mkdir -p ~/.pki/nssdb/
  4. Добавьте в базу сертификатов свои хотелки.
    certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "MyUTM" -i /path/to/UTM.crt
    certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "MyDLP" -i /path/to/DLP.crt
  5. Заберите файлы ~/.pki/nssdb/*.db, которые не связаны с учётной записью пользователя. Не трогайте файл pkcs11.txt, содержащий информацию о пользователе!
    • Будущие учётные записи или те, кто на данном ПК ещё не регистрировался:

      Для всех будущих учётных записей пользователей создайте скелетон sudo mkdir -p /etc/skel/.pki/nssdb/ и поместите в каталог /etc/skel/.pki/nssdb/ файлы *.db из предыдущего шага. Смените владельца sudo chown -R root:root /etc/skel/.pki/
      Теперь при первом входе пользователя во время создания ему домашней папки, автоматом будут копироваться в его ~/.pki/nssdb/ файлы-базы из /etc/skel/.pki/nssdb/*.db.

    • Уже существующие и настроенные учётные записи придётся обработать скриптом через вашу систему оркестровки:

      Вариант с удалением базы у пользователя и копированием уже существующей базы-эталона - add_cert_exist_user1.sh.

      #!/bin/bash
      ls -1 /home | while read userhome
      do
          echo "[${userhome}]"
          sudo rm -Rf /home/${userhome}/.pki/
          sudo mkdir -p /home/${userhome}/.pki/nssdb/
          sudo cp -f /etc/skel/.pki/nssdb/*.db /home/${userhome}/.pki/nssdb/
          sudo chown -R ${userhome}:${userhome} /home/${userhome}/.pki/
          echo "----------------------"
      done
      exit
      

      Вариант с добавлением сертификатов в существующую базу пользователя, предполагая что в ней могут существовать и другие сертификаты - add_cert_exist_user2.sh.

      #!/bin/bash
      ls -1 /home | while read userhome
      do
          echo "[${userhome}]"
          sudo mkdir -p /home/${userhome}/.pki/nssdb/
          certutil -d sql:/home/${userhome}/.pki/nssdb -A -t "C,," -n "MyDLP" -i /usr/local/share/ca-certificates/DLP.crt
          certutil -d sql:/home/${userhome}/.pki/nssdb -A -t "C,," -n "MyUTM" -i /usr/local/share/ca-certificates/UTM.crt
          echo "----------------------"
      done
      exit
      
  6. Установленные сертификаты в базе можно посмотреть: certutil -d sql:$HOME/.pki/nssdb -L

Дополнительные материалы:

Дата последней правки: 2024-10-08 13:29:50

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта