Страница 1 из 1

Генерируем сертификат SHA256, подписанный AD на Windows 2003

Добавлено: 29 сен 2019 19:11, Вс
UncleFather

Задача:

Необходимо получить сертификат SHA256, подписанный основным доменным (ActiveDirectory) сертификатом, но с именем, отличным от доменного. Домен работает на Windows Server 2003 R2.

Готовый сертификат и ключ нужно получить как в формате PKCS#7/P7B/PKCS#12/PFX (crt/key), так и в формате pem. На практике это пригодится для того, чтобы использовать сертификат с ключом как на Windows, так и на Unix/Linux - подобных системах. В частности, для IP АТС на базе Asterisk, например, для PBX Grandstream.

Сертификат должен быть подписан основным доменным (ActiveDirectory) сертификатом для того, чтобы для всех доменных компьютеров цепочка осталась доверенной и не пришлось бы добавлять новый корневой центр сертификации.


Решение 1:

Воспользуемся алгоритмом из статьи Как получить сертификат с именем, отличным от доменного и получим на выходе сертификат в файле crt и ключ в файле key.

Выполним команду для преобразования сертификата crt в pem:

Код: Выделить всё

openssl x509 -in my.domain.crt -out my.domain.crt.pem -outform PEM

Теперь объединим сертификат crt и ключ key в контейнер pfx:

Код: Выделить всё

openssl pkcs12 -export -out my.domain.pfx -inkey my.domain.key -in my.domain.crt

И уже из контейнера pfx получим ключ pem:

Код: Выделить всё

openssl pkcs12 -in my.domain.pfx -out my.domain.pem -nodes

Решение 2:

Первым делом нам понадобится корневой доменный сертификат вместе с ключом. Его можно импортировать с контроллера домена из оснастки «Центр сертификации», выполнив архивацию ЦС с закрытым ключом и сертификатом:

01.jpg

либо из оснастки «Сертификаты» для объекта «Локальный компьютер», так же на контроллере домена, экспортировав корневой сертификат из личных сертификатов компьютера, указав, что в контейнер необходимо экспортировать и закрытый ключ:

02.jpg

И в том, и в другом случае на выходе получим контейнер p12, который разделим на файлы сертификата и ключа в формате pem командами:

Код: Выделить всё

openssl pkcs12 -in my.domain.p12 -nocerts -out my.domain.key.pem -nodes
openssl pkcs12 -in my.domain.p12 -nokeys -out my.domain.cert.pem -nodes
openssl rsa -in my.domain.key.pem -out my.domain.key.txt.pem -text

Теперь воспользуемся алгоритмом из статьи Генерирование самоподписанного сертификата SHA256, начиная с пункта «5. Для генерации сертификата для сайта, создаем файл настроек server.csr.cnf...». В результате получим файлы сертификата crt и ключа key и конвертируем их в формат pem, аналогично Решению 1:

Выполним команду для преобразования сертификата crt в pem:

Код: Выделить всё

openssl x509 -in my.domain.crt -out my.domain.crt.pem -outform PEM

Теперь объединим сертификат crt и ключ key в контейнер pfx:

Код: Выделить всё

openssl pkcs12 -export -out my.domain.pfx -inkey my.domain.key -in my.domain.crt

И уже из контейнера pfx получим ключ pem:

Код: Выделить всё

openssl pkcs12 -in my.domain.pfx -out my.domain.pem -nodes

В итоге имеем доверенный (внутри домена) сертификат с произвольным именем:

2019-09-29_19-14-07.png
2019-09-29_19-14-07.png (7.42 КБ) 3134 просмотра