Product SiteDocumentation Site

20.4. Установка реплики в режиме CA-less (без встроенного CA)

Здесь предполагается, что основной сервер был установлен в режиме CA-less (см. Установка сервера FreeIPA в режиме CA-less). В этом случае для реплики нужно предоставить сертификаты вручную.

20.4.1. Генерация сертификата для реплики

На сервере, где создавались сертификаты для сервера:
  1. Создать файл энтропии:
    # head -c20 /dev/random > ~/test_ca/noise.txt
    
  2. Создать запрос на сертификат (в CN необходимо указать имя хоста будущей реплики, на запрос «Enter value for the key identifier fields», следует ввести вывод команды echo $SKID):
    # SKID="0x`openssl rand -hex 20`"
    # echo $SKID
    0xa30f48abf89afae77e481c712d234ff0e312d44e
    # certutil -d ~/test_ca -R  \
      -s CN=replica.example.test,O=IPA \
      -o /tmp/replicacert.req \
      -k rsa -g 2048 \
      -z ~/test_ca/noise.txt \
      -f ~/test_ca/password.txt \
      -a --extSKID -extSAN dns:replica.example.test
    
    Generating key.  This may take a few moments...
    
    Adding Subject Key ID extension.
    Enter value for the key identifier fields,enter to omit:
    0xa30f48abf89afae77e481c712d234ff0e312d44e
    Is this a critical extension [y/N]?
    n
    
  3. Подписать запрос на сертификат:
    # export CERT_SERIAL=$(($(date +%s) % 100000))
    # certutil -d ~/test_ca -C -c "CA"  \
      -i /tmp/replicacert.req \
      -o /tmp/replicacert.pem \
      -m $CERT_SERIAL -v 120 \
      -f ~/test_ca/password.txt -1 -5 -8 replica.example.test -a
    
    В ответ на запросы команды дать следующие ответы:
      0 - Digital Signature
      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
    
  4. Импортировать сертификат (на запрос команды, следует ввести пароль к закрытому ключу):
    # certutil -d ~/test_ca -A -i /tmp/replicacert.pem -n Replica-Cert -a -t ,,
    Enter Password or Pin for "NSS Certificate DB":
    
  5. Экспортировать сертификат в PKCS#12:
    # pk12util -o ~/test_ca/replicacert.p12 -n Replica-Cert \
      -d ~/test_ca -k ~/test_ca/password.txt -w ~/test_ca/password.txt
    
    pk12util: PKCS12 EXPORT SUCCESSFUL
    
  6. Скопировать сертификат в формате PKCS#12 (replicacert.p12) на целевую машину (replica.example.test) в каталог /root/test_ca.