Содержание

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Инструмент astra-freeipa-server-crt автоматизирует выпуск сертификатов для серверов (реплик) FreeIPA.
Предназначен для автоматизации работы в системах, в которых не применяется DogTag, являющийся штатной системой управления сертификатами FreeIPA.

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


Info
titleДанная статья применима к:
  • ОС СН Смоленск 1.6 Update 5


Сценарий применения

  1. Первый контроллер домена FreeIPA инициализируется с помощью инструмента astra-freeipa-server с использованием автоматического выпуска самоподписанного корневого сертификата и без использования центра авторизации DogTag.
    При такой инициализации в каталоге /etc/ssl/freeipa автоматически создаются файлы:
    1. /etc/ssl/freeipa/ca.key - закрытый ключ удостоверяющего центра;
    2. /etc/ssl/freeipa/ca.crt - сертификат закрытого ключа удостоверяющего центра;
    3. /etc/ssl/freeipa/server.key - закрытый ключ сервера;
    4. /etc/ssl/freeipa/server.crt - сертификат закрытого ключа сервера; 

  2. При добавлении сервера-реплики:

    1. Пользователь-администратор на сервере-реплике выполняет настройки параметров хоста (IP-адрес, адрес сервера DNS, hostname) и установку пакетов. В том числе на сервере - реплике запускается служба SSH:

      Command
      sudo systemctl enable --now ssh


    2. Пользователь-администратор на сервере-реплике выполняет ввод сервера в домен;

    3. Для выпуска сертификатов следующих устанавливаемых контроллеров-реплик используется инструмент astra-freeipa-server-ctr. Пример команды, выполняемой на основном сервере:

      Command
      astra-freeipa-server-ctr --host replica1.ipadomain.ru --export --push localadm@192.168.32.1 --pin 12345

      где:
      --host - полное доменное имя нового сервера-реплики;
      --export - указание выгрузить контейнер закрытого ключа и сертификата в файл-контейнер в формате pksc12;
      --push - указание скопировать контейнер pkcs12 на сервер, где будет выполняться установка, в домашний каталог пользователя localadm (в общем случае это пользователь-администратор, заданный при установке системы) в файл с именем replica1.ipadomain.ru.p12 (в качестве имени используется полное доменное имя целевого сервера с расширением .p12);
      --pin - пароль к создаваемому контейнеру;

    4. Установка FreeIPA на сервере-реплике выполняется пользователем-администратором, из его домашнего каталога, в который на предыдущем шаге скопирован контейнер pksc12. Команда:

      Command
      astra-freeipa-replica -a replica1.ipadomain.ru.p12 --pin 12345



  3. По мере необходимости (напр. истечение срока действия сертификатов) выпуск новых сертификатов и отправка их на серверы-реплики выполняется командой:

    Command
    astra-freeipa-server-ctr --host replica1.ipadomain.ru --push admin

    где
    --host - полное доменное имя сервера-реплики;
    --push - указание автоматически установить выпущенный сертификат на сервере реплике, действуя от имени пользователя admin (имя администратора домена "по умолчанию").

Справка по программе

Code Block
astra-freeipa-server-crt --help        
Выпуск сертификата для сервера FreeIPA.
Вызов: astra-freeipa-server-crt [--host FQDN] [--cacrt FILE.CRT] [--cakey FILE.KEY] [--sekey FQDN.KEY] [--help]
Если будет создан новый закрытый ключ сервера он будет размещён в файле "FQDN.key".
Созданный закрытый ключ будет далее использоваться для выпуска и перевыпуска всех сертификатов.
!!! Замена закрытых ключей данным сценарием не поддерживается !!!
Выпущенный сертификат будет размещен в файле "FQDN-TIMESTAMP.crt" в каталоге для размещения сертификатов.
Экспортированный в контейнер сертификат будет размещен в файле "FQDN-TIMESTAMP.p12" в каталоге для размещения сертификатов.
Сертификаты могут быть скопированы на удалённую машину и зарегистрированы там в БД сертификатов..
В качестве TIMESTAMP используются текущие дата и время в формате: "%y%m%d-%H%M%S" (см. справку man date).
!!! Для формирования TIMESTAMP используется всемирное координированное время (UTC). TIMESTAMP изменяется при каждом запуске !!!
Ключ и сертификат выпускаются со следующими фиксированными параметрами:
    Алгоритм и длина закрытого ключа rsa:2048 (см. man openssl).
    Срок действия сертификата:       3650
Опции:
    --certdir DIR    - Имя каталога для поиска ключа и сертификата удостоверяющего центра, и для размещения создаваемых сертификатов.
                       Если каталог не существует - он будет создан. Выбрано имя "/etc/ssl/freeipa".
    --host  FQDN     - Полное доменное имя (FQDN) сервера, для которого выпускается сертификат. Выбрано имя "ipa0.ipadomain0.ru".
                       Если имя не задано - используется hostname текущего сервера.
    --cacrt FILE     - Имя файла с существующим сертификатом удостоверяющего центра. Выбрано имя "/etc/ssl/freeipa/ca.crt".
    --cakey FILE     - Имя файла с существующим закрытым ключом удостоверяющего центра. Выбрано имя "/etc/ssl/freeipa/ca.key".
    --sekey FILE     - Имя файла с закрытым ключом сервера. Если файл не существует - будет создан новый закрытый ключ.
                       Если имя не задано - ключ будет размещен в файле с именем "FQDN.key" в каталоге для размещения сертификатов.
                       Выбрано имя "/etc/ssl/freeipa/ipa0.ipadomain0.ru.key".
    --sekey_parm ALG - Алгоритм и длина закрытого ключа сервера. Выбрано значение "rsa:2048" (см. man openssl).
    --secrt_days NUM - Срок действия выпускаемого сертификата, дней. Выбрано значение "3650" (см. man openssl).
    --export         - Экспортировать сертификат в контейнер формата pkcs12 для установки нового сервера (новой реплики) FreeIPA.
                       Экспорт будет выполнен в файл "/etc/ssl/freeipa/ipa0.ipadomain0.ru-200320-082415.p12".
                       Не требуется для обновления сертификата уже установленного сервера.
    --pin PIN        - Пароль ("пин") для экспорта сертификата. Чтобы задать пустой пароль укажите пробел в кавычках: --pin " "
                       Если никакой пароль не задан - он будет запрошен.
    --push ADMIN     - Попытаться скопировать через ssh/scp созданные файлы на сервер, указанный в параметре --host, и зарегистрировать их.
                       В параметре ADMIN можно задать не только имя пользователя, но и адрес целевого сервера, например: "admin@192.168.32.11".
                       Все действия будут выполняться от имени "admin". Все файлы будут копироваться в домашний каталог этого пользователя.
                       Если выполнялся экспорт сертификата для нового сервера (новой реплики), сертификат будет скопирован в файл с именем "ipa0.ipadomain0.ru.p12".
                       Если создавался новый сертификат для существующего сервера, то:
                           - Копия этого сертификата будет скопирована в файл с именем "ipa0.ipadomain0.ru.crt";
                           - Будет сделана попытка зарегистрировать его в БД сертификатов "/etc/apache2/nssdb".
                       !!! После регистрации нового сертификата в БД сертификатов службы FreeIPA должны быть перезапущены вручную !!!
    -y               - Выполнять действия без запроса подтверждения.
    --help | -h      - Вывести эту подсказку. Никакие реальные действия выпоняться не будут.
                       Если этот ключ указан не первым, то в подсказке будут выведены значения, установленные предшествующими ключами.