Главная страница » Получение сертификата для WEB сервера от внутреннего центра сертификации.

Получение сертификата для WEB сервера от внутреннего центра сертификации.

by admin

Создание шаблона. 

Откроем на сервере «Центр сертификации» управления шаблонами. 

#> certsrv.msc

Выберем шаблон и сделаем копию под наши потребности.

Нужно разрешить экспортировать закрытый ключ. У нас может быть и windows server и Linux. Для Windows серверов можно снять эту галочку для большей безопасности, но тогда ключи должны генерироваться на том сервере на котором и будут использоваться.    

Сертификаты должны быть одобрены перед тем как выпустить.  

Дополнительные свойства предоставляются в самом запросе. Из основного  «Subject Alternative Names» chrome без этого дополнения выдает предупреждения.  

И на последок, разрешения. Только администраторы домена имеют право на «Заявка». (Запрос на выпуск сертификата). Если нужно добавьте соответствующую группу.   

Добавим созданный шаблон в список доступных шаблонов.  

Создание ключа та формирование запроса к Центру сертификации для Linux web сервера.

Через certlm.msc или mmc (Использую для этого windows 10 но можно с любого компьютера в домене, который имеют доступ)

certlm.msc — работает начиная с windows 2012 и выше. Если нет, используйте mmc. 

   Выбираем созданный шаблон. Если по каким-то причинам нет списков шаблонов. Проверьте Firewall (на сервере центра сертификации должны быть открыты порты DCE-RPC (tcp\udp:135) и RPC dynamic ports (tcp:49152-65535)   ) или пути следование до сервера. 

Выбираем «Свойства» это позволит добавить в запрос сертификата дополнительные возможности и установить базовые.  

  Будем создавать для web сервера test.print.local

SAN(Subject Alternative Names):

— test.print.local

— test

— 10.210.101.5

При использовании SAN — это позволит, если даже я зайду по ip не получать предупреждения в chrome об некорректном сертификате. 

Основные атрибуты находятся сверху CN,C,L,O,OU,S. Дополнительно создадим DNS (test.print.local, test), IP (10.210.101.5)

Сохраним запрос в файл, для передачи в Центр сертификации.

 Запустим Powershell 

отправляем запрос на сервер сертификации.

#> certreq.exe -submit .\test.req

Тоже самое можно сделать из консоли certsrv.msc (на сервере ЦС)

Ответственный администратор Центра сертификации должен принять запрос. Самый ответственный шаг. 🙂 

После этого возвращаемся в powershell и запрашиваем подписаний сертификат. 

  #> certreq -retrieve 51

51 — получен на первом шаге. 

  Импортируем подписаний сертификат на тот сервер на котором ми создавали и заполняли шаблон.

Экспортируем ключ и сертификат для передачи на linux сервер. 

Сохранил в файл test.pfx и копировал его на Linux сервер.

  На сервере Linux конвертируем test.pfx в pem формат понятный для apache. 

Сохраним сертификаты в файл test.crt в pem формате  

># openssl pkcs12 -in test.pfx -out test.crt -clcerts -nokeys  -nodes

Получаем ключ 

># openssl pkcs12 -in test.pfx -out test.key -nocerts -nodes

Получены файли уже можна использовать в apache

— test.crt

— test.key

Тестируем 

Открываем chrome и проверяем. 

Создание ключа та формирование запроса к Центру сертификации для Linux web сервера из Linux окружения.

Готовим файл cnf для openssl 

 [req]

distinguished_name = req_distinguished_name

req_extensions = v3_req

prompt = no

[req_distinguished_name]

C = UA

ST = Kiev

L = Kiev

O = Univet

OU = IT

CN = test.print.localm

[v3_req]

keyUsage = keyEncipherment, dataEncipherment

extendedKeyUsage = serverAuth

subjectAltName = @alt_names

[alt_names]

DNS.1 = test.print.local

DNS.2 = test

IP.1  = 10.210.101.5

Генерируем ключ и запрос на центр сертификации. 

>#  openssl req -out test-linux.csr -newkey rsa:2048 -nodes -keyout test.key -config test.cnf

Полученный файл test-linux.csr копируем на компьютер с windows, который имеет доступ до центра сертификации. Запускаем Powershell

attrib  — выбираем нужный шаблон “certificatetemplate:test”

test — имя шаблона

 #> certreq.exe -attrib  “certificatetemplate:test” -submit .\test-linux.csr

Сохраняем ответ ЦС в файл. (На сервере должен администратор подтвердить запрос и только после выполняем команду)

#> certreq -retrieve 52 

На ЦС ми видим наш сертификат 

Полученный результат можно передавать на сервер c Linux. 

You may also like

Leave a Comment