Как создать SSL-сертификат клиента из отключенной сети? - PullRequest
5 голосов
/ 07 ноября 2008

У меня есть уникальная ситуация, когда мне нужно реализовать проверку подлинности сертификата клиента через HTTPS между браузером IE и IIS 6. Браузер и IIS разделены брандмауэром, который позволяет браузеру подключаться только к IIS через порт SSL.

У нас есть внутренний сервер сертификатов в той же сети, что и IIS. Я создал сертификат сервера SSL для IIS, и он установлен. Я настроил IIS, чтобы разрешить только SSL, требовать клиентские сертификаты.

Ограничение здесь заключается в том, что браузер находится в автономной сети, поэтому я не могу перейти на http://caserver/CertSrv URL-адрес СА и запросить сертификат клиента , как вы это обычно делаете.

Я подумал, что если бы я мог сгенерировать CSR на основе открытого ключа корневого CA, я мог бы скопировать его на сервер CA для генерации сертификата клиента. Но, как представляется, в IE или MMC Certificates для этого не предусмотрено никаких положений. Похоже, что MMC для сертификатов требует прямого подключения к CA.

Кто-нибудь решал это раньше?

К вашему сведению, все серверы, на которые есть ссылки, работают под управлением Windows Server 2003.

Обновление: Спасибо Джонасу Обершвайберу и Марку Саттону за указание на инструмент командной строки CertReq.exe. Используя это, я создал CSR, и, следовательно, клиентский сертификат, который успешно устанавливается. Однако IE, по-видимому, не отправляет этот клиентский сертификат при доступе к рассматриваемому серверу IIS; он по-прежнему генерирует 403.7 «Запрещено: требуется SSL-сертификат клиента». Я подозреваю, что причина в том, что поле Subject клиентского сертификата не совпадает с идентификатором пользователя учетной записи, в которой работает IE, поэтому, возможно, не отправляет несоответствующий клиентский сертификат. Тема соответствует учетной записи пользователя, которого я использовал для отправки CSR и создания сертификата клиента на другом конце брандмауэра.

Имеет значение поле Тема? Есть ли что-то еще, что мне нужно сделать, чтобы IE мог отправить этот сертификат?

Ответы [ 4 ]

1 голос
/ 07 ноября 2008

Используйте команду certreq на вашем клиенте следующим образом

certreq -new -f filein c: \ certrequest.req

Вот и пример файла в

[Version] Подпись = "$ Windows NT $"

[NewRequest]
Тема = "CN = dc1.extranet.frbrikam.com"
EncipherOnly = False
Экспортируемый = Ложь
KeyLength = 1024
KeySpec = 1
KeyUsage = 0xA0
MachineKeySet = True
ProviderName = "Поставщик криптографического канала Microsoft RSA SChannel"
ProviderType = 12
RequestType = CMC

[RequestAttributes] CertificateTemplate = TLSServer

Замените шаблон сертификата именем вашего шаблона сертификата

Получив файл запроса, вам необходимо передать его в центр сертификации на USB-накопителе и, как обычно, использовать веб-интерфейс регистрации для обработки файла запроса.

Верните выходной сертификат клиенту, откройте его и нажмите "Установить".

0 голосов
/ 12 октября 2009

Предложение для обновления, на всякий случай - что такое список доверенных сертификатов на сервере?

Тема DN, совпадающая с именем пользователя Windows, никогда не была проблемой для меня - хотя я не очень часто использую IIS. Однако где-то в IIS наверняка будет список доверенных сертификатов. Эта ошибка звучит для меня так, будто список доверенных сертификатов на сервере не включает CA или Root CA, выдавший сертификат клиента.

Это особенно верно, если вы никогда не получите всплывающее окно выбора сертификата в IE при подключении к серверу IIS - даже если у вас есть сертификат, настроенный в хранилище сертификатов IE. Это означает, что клиент подключился к серверу, сервер дал список доверенных сертификатов, а у клиента не было сертификата, соответствующего этому списку. Таким образом, сеанс SSL перешел в состояние «Запрещенная ошибка».

Если открылось окно выбора сертификата, а вы выбрали и отправили сертификат, возможно, на стороне сервера возникли другие проблемы с конфигурацией.

0 голосов
/ 07 ноября 2008

Перейдите на сайт http://caserver/CertSrv, который вы упомянули, используя третий компьютер, который может видеть сервер CA. Выберите третий вариант, загрузите сертификат CA, сертификат Chai или CRL. На следующей странице выберите «Download CA Certificate Chain», чтобы загрузить файл p7b. С помощью флэш-накопителя (или электронной почты и т. Д.) Перенесите его на другой компьютер, что позволит импортировать его на доверенные корневые серверы в IE.

http://technet.microsoft.com/en-us/library/cc787796.aspx

0 голосов
/ 07 ноября 2008

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

...