Product SiteDocumentation Site

Глава 3. Установка сервера FreeIPA в режиме CA-less

3.1. Подготовка сертификатов для сервера FreeIPA
3.2. Экспорт сертификатов в правильные форматы
3.3. Установка CA-less IPA
В этом разделе описывается, как можно установить сервер FreeIPA без центра сертификации (CA).
CA-less конфигурация требуется в тех случаях, когда по какой-либо причине нет возможности развернуть на FreeIPA сервис PKI dogtag. Например, на данный момент это невозможно сделать в некоторых сертифицированных конфигурациях.
Сертификаты, необходимые для установки сервера FreeIPA без центра сертификации (CA):
  • сертификат LDAP-сервера и закрытый ключ:
    • --dirsrv-cert-file для указания сертификата и файлов закрытого ключа сервера LDAP;
    • --dirsrv-pin для указания пароля доступа к закрытому ключу;
  • сертификат веб-сервера Apache и закрытый ключ:
    • --http-cert-file для указания сертификата и файлов закрытого ключа сервера Apache;
    • --http-pin для указания пароля доступа к закрытому ключу;
  • полная цепочка сертификатов CA, выдавших сертификаты серверов LDAP и Apache:
    • --dirsrv-cert-file и --http-cert-file для файлов сертификатов с полной цепочкой сертификатов ЦС или ее частью;
  • файлы сертификатов для полной цепочки сертификатов CA:
    • --ca-cert-file для файла или файлов, содержащих сертификат центра сертификации, который выдал сертификаты LDAP, Apache Server и Kerberos KDC;
  • сертификат PKINIT центра распространения ключей Kerberos (KDC) и закрытый ключ (опционально):
    • --pkinit-cert-file для SSL-сертификата Kerberos KDC и закрытого ключа;
    • --pkinit-pin для пароля доступа к закрытому ключу Kerberos KDC;
    • --no-pkinit — отключить шаги настройки pkinit. Если не предоставить сертификат PKINIT, ipa-server-install настроит сервер FreeIPA с локальным KDC с самоподписанным сертификатом.
Файлы, предоставленные с помощью --dirsrv-cert-file и --http-cert-file, в сочетании с файлом, предоставленным с помощью --ca-cert-file должны содержать полную цепочку сертификатов CA, выдавших сертификаты сервера LDAP и Apache.

3.1. Подготовка сертификатов для сервера FreeIPA

Предупреждение

Перед генерацией сертификатов необходимо убедиться, что следующая команда возвращает полное доменное имя (FQDN) сервера FreeIPA:
# echo $HOSTNAME
ipa.example.test
Создать каталог для сертификатов:
# mkdir ~/test_ca
Создать файл password.txt с паролем к закрытому ключу (длина пароля должна быть не меньше 8 символов):
# echo "SECret.123" > ~/test_ca/password.txt
Создать базу данных NSS:
# certutil -d ~/test_ca -N -f ~/test_ca/password.txt
Создать noise файл, заполненный случайными числами:
# head -c20 /dev/random > ~/test_ca/noise.txt
Выполнить экспорт переменной CERT_SERIAL:
# export CERT_SERIAL=1
Создать CA сертификат:
# SKID="0x`openssl rand -hex 20`"
# echo $SKID
0xfa012b30b9407b0750b786ff5ed9f49ce3998622
# certutil -d ~/test_ca -S -n "CA" -s "CN=Certificate Authority" -x -t CT,,C -1 -2 -5 -m $CERT_SERIAL -v 120 -z ~/test_ca/noise.txt -f ~/test_ca/password.txt --extSKID
В ответ на запросы команды дать следующие ответы (на запрос «Enter value for the key identifier fields», следует ввести вывод команды echo $SKID):
  0 - Digital Signature
  1 - Non-repudiation
  5 - Cert signing key
  9 - done
  Is this a critical extension [y/N]? y
  Is this a CA certificate [y/N]?  y
  Enter the path length constraint, enter to skip [<0 for unlimited path] 0
  Is this a critical extension [y/N]? y
  Enter value for the key identifier fields,enter to omit: 0xfa012b30b9407b0750b786ff5ed9f49ce3998622
  Is this a critical extension [y/N]? n
  5 - SSL CA
  6 - S/MIME CA
  7 - Object Signing CA
  9 - done
  Is this a critical extension [y/N]? n
Создать noise файл, заполненный случайными числами:
# head -c20 /dev/random > ~/test_ca/noise.txt
Создать запрос на сертификат (на запрос «Enter value for the key identifier fields», следует ввести вывод команды echo $SKID):
# SKID="0x`openssl rand -hex 20`"
# echo $SKID
0xb17caf72b46288bcc9c887c89894dc917e06f724
# certutil -d ~/test_ca -R -s CN=$HOSTNAME,O=IPA -o /tmp/servercert.req -k rsa -g 2048 -z ~/test_ca/noise.txt -f ~/test_ca/password.txt -a --extSKID
Generating key.  This may take a few moments...

Adding Subject Key ID extension.
Enter value for the key identifier fields,enter to omit:
0xb17caf72b46288bcc9c887c89894dc917e06f724
Is this a critical extension [y/N]?
n
Подписать запрос на сертификат:
# export CERT_SERIAL=$(($CERT_SERIAL + 1))
# certutil -d ~/test_ca -C -c "CA" -i /tmp/servercert.req -o /tmp/servercert.pem -m $CERT_SERIAL -v 120 -f ~/test_ca/password.txt -1 -5 -a
В ответ на запросы команды дать следующие ответы:
  2 - Key encipherment
  9 - done
  Is this a critical extension [y/N]? n
  1 - SSL Server
  9 - done
  Is this a critical extension [y/N]? n

Примечание

Можно также создать отдельные сертификаты для серверов HTTP и Directory.