Я использую центр сертификации Microsoft для подписи некоторых сертификатов из корпоративной сети. С помощью утилиты certreq все работает нормально, но я нигде не нашел назначение шаблона.
В моем случае мне нужно создать несколько запросов сертификатов на сервере Linux (используя OpenSSL), а затем подписать его с помощью Microsoft CA на другом сервере (Windows Server 2012). Процесс в основном описан ниже:
- Создать файл .csr и ключ на сервере Linux (
openssl req -newkey rsa:1024 -keyout myKey.key -out myCsr.csr -subj /CN=mydomain.com/O=Organization/C=US/ST=ST/L=City
);
- Отправьте файл csr на Windows Server, где установлен CA;
- Вызовите утилиту certreq для создания самого сертификата (
certreq -submit -attrib "CertificateTemplate:MyWebServerTemplate" -config DOMAINCA\CA1 myCsr.csr myCert.cer
);
- При необходимости снова отправьте сертификат в Linux и преобразуйте .cer в .crt с помощью команды
openssl x509 -outform DER -in myCert.cer -out myCert.crt
. Это необходимо, когда certreq используется с -binary
option
Насколько я знаю, выбор шаблона является обязательным, но все меняется независимо от того, какой я выберу. Я пытался выбрать много шаблонов, но, видимо, что-то меняется
обновление:
После некоторых тестов я заметил, что некоторые шаблоны фактически изменяют некоторую исходную информацию из CSR, но мой вопрос по-прежнему таков: какова цель шаблона, поскольку вся информация находится в CSR и почему она обязательна? Как я могу заставить MS CA использовать информацию CSR?
Я новичок в администрировании сертификатов. Я что-то не так понял в процессе?