SSL-аутентификация клиента, вызывающая ошибку 403.7 от IIS

Я пытаюсь подключиться к веб-службе (не находящейся под моим контролем), настроенной для аутентификации пользователей с помощью клиентских сертификатов SSL. У меня есть действительный сертификат в формате PKCS12, содержащий сертификат клиента и связанный закрытый ключ. Сертификат выдается центром сертификации, принятым поставщиком веб-услуг.

Установка сертификата и попытка доступа к запретной зоне в различных браузерах дает следующие результаты:

  • IE6 - отлично работает, и я могу получить WSDL

  • IE7 - запрашивает сертификат, но затем выдает ошибку 403.7 с сервера

  • Firefox3 - настроен на запрос, но без запроса и с ошибкой 403.7.

  • Safari 4 — сертификат установлен в связке ключей, но нет приглашения и 403.7

Кроме того, попытка программного доступа к веб-службе (Java) завершается с тем же кодом ошибки 403.7.

Странно, что это работает в IE6, но не в другом браузере, что я упускаю? Нужно ли включать полную цепочку сертификатов ЦС в файл PKCS12?

Любая помощь будет принята с благодарностью.


person Community    schedule 07.10.2009    source источник


Ответы (2)


Это действительно работает! Если вас смущают параметры -inkey и -in, то это закрытый ключ и сертификат из файла p12. Вы можете преобразовать файл p12 в формат pem с помощью:

openssl pkcs12 -in file.p12 -clcerts -out file.pem

и используйте указанную выше команду только с «-in file.pem».

Кроме того, вы можете импортировать корневой сертификат ЦС в хранилище доверенных сертификатов, вот описание того, как это сделать: http://gagravarr.org/writing/openssl-certs/others.shtml#ca-openssl, и тогда вам не нужно вручную копировать сертификаты. После установки сертификата используйте приведенную выше команду без «-CAfile chain.pem».

person Gergely Szakács    schedule 12.07.2011

Хорошо, сработало. Ответ — да, мне нужно было включить все промежуточные сертификаты ЦС в файл PKCS12. Я объединил все промежуточные сертификаты ЦС, а также сертификат корневого ЦС в файле «chain.pem», а затем выполнил следующую команду:

openssl pkcs12 -export -chain -CAfile chain.pem -in cert.pem -inkey key.pem -out cert.p12
person Community    schedule 08.10.2009