Мне было показано, как создавать файлы .csr с помощью OpenSSL, и я успешно создал, преобразовал и установил подписанные сертификаты (файлы .pfx) на некоторые из наших веб-серверов с IIS 10.
Кто-то еще показал мне, как сгенерировать файлы .csr непосредственно с одного из наших других веб-серверов - с помощью функции «Создать запрос сертификата», доступной в IIS 10. Однако, используя этот метод, у меня не было чтобы создать файл .pfx, и я смог установить загруженный подписанный сертификат в IIS без необходимости ничего конвертировать. Таким образом, это было намного быстрее, но я не понимаю, почему в данном случае использовался именно этот метод, а не OpenSSL. Конечный результат отличается? Может кто-нибудь просветите меня, пожалуйста?
Хотя OpenSSL предлагает большую гибкость с точки зрения того, что вы можете включить в запрос, для преобразования и правильной установки всего требуется дополнительная работа. Windows предоставляет certreq.exe
Инструмент CLI, который предлагает те же функции, что и OpenSSL, с точки зрения генерации запросов. Certreq поставляется с каждой установкой Windows, вам не нужно ничего устанавливать, чтобы она работала.
OpenSSL (в Windows) необходим только в том случае, если целевое приложение не поддерживает Microsoft CryptoAPI и требует закрытых ключей в формате PKCS # 1 или PKCS # 8. CryptoAPI ужасно поддерживает эти форматы из-за разной конструкции криптографического стека. Во всех остальных случаях достаточно использовать встроенные инструменты Windows (MMC, certreq, certutil и т. Д.) Для выполнения операций, связанных с сертификатами.
Если вы используете консоль IIS Создать сертификат домена ... вариант, вы можете запросить сертификат только с помощью встроенного шаблона веб-сервера Microsoft ADCS. Этот шаблон имеет очень ограниченные возможности и не включает Subject Alternate Name
расширение, обязательное для всех современных браузеров, а также включает S/MIME Capabilities
расширения, которые не требуются для сертификатов веб-серверов. Поскольку это шаблон версии 1, вы не можете изменить ни один из них.
Если вместо этого вы решите использовать консоль IIS Создать запрос на сертификат ... вариант вы создадите запрос, который можно сохранить на диск. Теперь вы можете отправить запрос в любой центр сертификации. Если вы выберете Windows ADCS, вы можете использовать certreq.exe
утилита с -attrib "CertificateTemplate:<template short name>
возможность указать другой шаблон. Вы даже можете проявить некоторую изобретательность, чтобы добавить Subject Alternate Name
расширение (или любое другое расширение) к запросу, но это требует некоторых усилий и понимания внутренней работы сертификатов X.509!
Если вы используете OpenSSL для создания запроса на сертификат, вы можете запросить любое поле или расширения, которые OpenSSL может создать - что почти охватывает все. Вы можете отправить это в ADCS CA с помощью certreq.exe
или отправьте запрос в центр сертификации, отличный от Windows. После получения сертификата вам необходимо связать его с его закрытым ключом, чтобы создать файл PKCS # 12 (или PFX), который вы импортируете на сервер. Это довольно запутанно, но при необходимости запрос сертификата может быть довольно гибким.
Однако более простой вариант (который, кажется, вам не был показан) - запросить сертификат с помощью консоли управления сертификатами сервера (не IIS) (certlm.msc
из диалогового окна «Выполнить»), где вы можете запросить сертификат, используя любой включенный шаблон (не только веб-сервер). Если этот шаблон правильно настроен администраторами ADCS, вы получите сертификат с соответствующим Subject Alternate Name
расширение, нет S/MIME Capability
расширение и правильное использование ключей для веб-сервера, которые затем можно просто привязать к веб-сайту с помощью консоли IIS. Это одновременно гибко и удобно.