FreeIPA запрос сертификата с именем - PullRequest
0 голосов
/ 18 декабря 2018

Я некоторое время назад задавался вопросом, как я могу создать ssl-сертификат для cname.Это произошло, поскольку мы всегда используем общие a-записи для наших виртуальных машин.Службы, работающие на этих виртуальных машинах, должны быть доступны пользователям по имени службы через SSL.Мы используем FreeIPA в качестве нашего центра сертификации.

1 Ответ

0 голосов
/ 18 декабря 2018

Иногда вы ищете ответ на протяжении веков и находите ответ на нескольких сайтах, которые не очень понятны.Я объясню свой ответ на примере, демонстрирующем различия в запросе сертификата у FreeIPA с именем и без имени.

Мы создаем воображаемуювиртуальная машина с a-записью abc955-xy.example.com.На этой машине мы будем запускать postgres.Поэтому для удобства cname будет postgresql.example.com.Сначала мы создаем сертификат для abc955-xy.example.com, который действителен только для fqdn.Во-вторых, мы создаем сертификат для cname, который также действителен для fqdn.

Сертификат без cname

# Generate a private key
openssl genrsa -out abc955-xy.example.com.key 4096

# Add the host to FreeIPA
ipa host-add abc955-xy.example.com --force

# Create a host principal for the service HTTP
ipa service-add HTTP/abc955-xy.example.com

# Add the host principal to the host
ipa service-add-host HTTP/abc955-xy.example.com --host abc955-xy.example.com

# Request a certificate for the host, using the principal and private key
ipa-getcert request -r -f abc955-xy.example.com.crt -k abc955-xy.example.com.key \ 
-K HTTP/abc955-xy.example.com -D abc955-xy.example.com

Cerfificate, включая cname

# Generate a private key
openssl genrsa -out postgresql.example.com.key 4096

# Add the host to FreeIPA, using the cname
ipa host-add postgresql.example.com --force

# Create a host principal for the service HTTP
ipa service-add HTTP/abc955-xy.example.com

# Create a principal for the service HTTP with the cname
ipa service-add HTTP/postgresql.example.com --force

# Add the cname principal to the host
ipa service-add-host HTTP/postgresql.example.com --host abc955-xy.example.com

# Request a certificate for the host, using the principal and private key and cname
ipa-getcert request -r -f postgresql.example.com.crt -k postgresql.example.com.key\
-K HTTP/postgresql.example.com -D postgresql.example.com -D abc955-xy.example.com

Помимо некоторых различий в именах, основное различие между этими двумя опциями заключается в том, что вы добавляете HTTP-принципал с cname к хосту вместо HTTP-принципала с fqdn.

Примечание: поскольку браузеры, такие как Chrome и Chromium, принимают сертификаты только с альтернативным именем субъекта (SAN) начиная с версии 65, вам необходимо добавить альтернативное имя субъекта в сертификаты без имени cname.Отсюда и опция -D в запросе ipa-getcert.Для сертификатов без имени вы должны указать fqdn.

...