Как создать сертификат клиента SSL из отключенной сети?

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

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

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

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

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

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

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

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


person spoulson    schedule 06.11.2008    source источник


Ответы (4)


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

certreq -new -f файл в c:\certrequest.req

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

[Версия] Подпись="$Windows NT$"

[NewRequest]
Subject="CN=dc1.extranet.frbrikam.com"
EncipherOnly = False
Exportable = False
KeyLength = 1024
KeySpec = 1
KeyUsage = 0xA0
MachineKeySet = True
ProviderName = "Провайдер криптографии Microsoft RSA SChannel"
ProviderType = 12
RequestType = CMC

[RequestAttributes] CertificateTemplate=TLSServer

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

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

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

person J Hunt    schedule 07.11.2008
comment
Это сработало для создания CSR, а затем сертификата клиента. Я также могу установить сертификат на отключенный сервер. Но IE не распознает его в разделе «Инструменты/Параметры/Сертификат/Персональные», предположительно потому, что сертификат выдается идентификатору пользователя, сгенерировавшему сертификат клиента, а не идентификатору пользователя, сгенерировавшему CSR. - person spoulson; 07.11.2008
comment
Итак, в IE я получаю сертификат клиента 403.7, необходимый при доступе к серверу IIS. - person spoulson; 07.11.2008

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

person Jonas Oberschweiber    schedule 06.11.2008

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

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

person Aaron    schedule 06.11.2008
comment
Боюсь, это не то, о чем я просил. Копирование цепочки сертификатов Root CA тривиально. Мне нужно сгенерировать сертификат клиента для отключенного компьютера. - person spoulson; 07.11.2008

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

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

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

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

person bethlakshmi    schedule 12.10.2009