URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 5053
[ Назад ]

Исходное сообщение
"Internet Explorer и клиентский SSL сертификат"

Отправлено VArtem , 27-Июн-12 16:28 

При помощи OpenSSL сгенирировал самоподписный SSL сертификат, а так же множество клиентских сертификатов к нему.  С нормальными браузерами (Firefox, Chrome) все работает, т.е. при импортированном клиентском сертификате страница открывается, без него - не открывается.

С Internet Explorer как всегда проблемы.  Сертификат импортировался нормально, захожу на сайт - он предупреждает что сертификат самоподписный и после того, как я все же разрешаю зайти на этот сайт - вываливается с 403 ошибкой.

Клиентский сертификат:
Алгоритм подписи: md5RSA
Открытый ключ: RSA (1024 бит)
Алгорит отпечатка: sha1

С теми же клиентскими сертификатами в опере и хроме - работает нормально. Кто сталкивался с подобными траблами?


Содержание

Сообщения в этом обсуждении
"Internet Explorer и клиентский SSL сертификат"
Отправлено operator , 01-Июл-12 18:23 
>[оверквотинг удален]
> С Internet Explorer как всегда проблемы.  Сертификат импортировался нормально, захожу на
> сайт - он предупреждает что сертификат самоподписный и после того, как
> я все же разрешаю зайти на этот сайт - вываливается с
> 403 ошибкой.
> Клиентский сертификат:
> Алгоритм подписи: md5RSA
> Открытый ключ: RSA (1024 бит)
> Алгорит отпечатка: sha1
> С теми же клиентскими сертификатами в опере и хроме - работает нормально.
> Кто сталкивался с подобными траблами?

а сертификат сервера в IE/Windows загружали?


"Internet Explorer и клиентский SSL сертификат"
Отправлено Сергей , 19-Окт-12 23:28 
> При помощи OpenSSL сгенирировал самоподписный SSL сертификат, а так же множество клиентских
> сертификатов к нему.  С нормальными браузерами (Firefox, Chrome) все работает,
> т.е. при импортированном клиентском сертификате страница открывается, без него - не
> открывается.
> С Internet Explorer как всегда проблемы.  Сертификат импортировался нормально, захожу на
> сайт - он предупреждает что сертификат самоподписный и после того, как
> я все же разрешаю зайти на этот сайт - вываливается с
> 403 ошибкой.

у меня возникла та же проблема. Делал вот по этой статье
http://www.opennet.me/base/sec/ssl_cert.txt.html
firefox до установки клиентского сертификата не открывает страницу, после установки открывает. В IE9 сертификат импортировался. При заходе на сайт выдает окно "Подтверждение сертификата" с указанным клиентским сертификатом, а при нажатии на ОК выдает "Internet Explorer не может отобразить эту веб-страницу..."
Прошу подсказки.


"Internet Explorer и клиентский SSL сертификат"
Отправлено Сергей , 20-Окт-12 19:37 
включил в apache для виртуального хоста, на котором произвожу настройки LogLevel debug
Вот что получилось в логах:
[Sat Oct 20 19:14:59 2012] [info] Initial (No.1) HTTPS request received for child 1 (server myserver:443)
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_kernel.c(510): [client my.ip.addr.ess] Changed client verification type will force renegotiation
[Sat Oct 20 19:14:59 2012] [info] [client my.ip.addr.ess] Requesting connection re-negotiation
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_io.c(1900): OpenSSL: I/O error, 5 bytes expected to read on BIO#b82fbb40 [mem: b830314b]
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_kernel.c(764): [client my.ip.addr.ess] Performing full renegotiation: complete handshake protocol (client does support secure renegotiation)
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_kernel.c(1866): OpenSSL: Handshake: start
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_kernel.c(1874): OpenSSL: Loop: SSL renegotiate ciphers
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_kernel.c(1874): OpenSSL: Loop: SSLv3 write hello request A
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_kernel.c(1874): OpenSSL: Loop: SSLv3 flush data
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_kernel.c(1874): OpenSSL: Loop: SSLv3 write hello request C
[Sat Oct 20 19:14:59 2012] [info] [client my.ip.addr.ess] Awaiting re-negotiation handshake
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_kernel.c(1866): OpenSSL: Handshake: start
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_kernel.c(1874): OpenSSL: Loop: before accept initialization
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_io.c(1900): OpenSSL: I/O error, 5 bytes expected to read on BIO#b82fbb40 [mem: b830314b]
[Sat Oct 20 19:14:59 2012] [debug] ssl_engine_kernel.c(1903): OpenSSL: Exit: error in SSLv3 read client hello B
[Sat Oct 20 19:14:59 2012] [error] [client my.ip.addr.ess] Re-negotiation handshake failed: Not accepted by client!?

"Internet Explorer и клиентский SSL сертификат"
Отправлено Сергей , 20-Окт-12 19:42 
при входе через firefox ни каких ошибок не вылазит

"Internet Explorer и клиентский SSL сертификат"
Отправлено Сергей , 22-Окт-12 18:49 
в надежде, что найдется знающий человек, который подскажет.

Делаю сертификаты таким образом:
echo "private CA key..."
openssl genrsa -des3 -nodes -out my-ca.key 2048

echo "X.509 cartificate..."
openssl req -new -newkey rsa:1024 -nodes -keyout my-ca.key -x509 -days 3650 \
    -subj /C=RU/ST=Moscow/L=Moscow/O=My\ Inc/OU=IT/CN=linux.local/emailAddress=my@email.ru \
    -out my-ca.crt

echo "private key for server..."
openssl req -new -newkey rsa:1024 -nodes -keyout mars-server.key \
    -subj /C=RU/ST=Moscow/L=Moscow/O=My\ Inc/OU=Web/CN=linux.local/emailAddress=jclord@yandex.ru \
    -out mars-server.csr
echo "sign certificate request..."
openssl x509 -req -in mars-server.csr -out mars-server.crt -sha1 -CA my-ca.crt -CAkey my-ca.key \
    -CAcreateserial -days 3650

echo "private key for client..."
openssl req -new -newkey rsa:1024 -nodes -keyout van-c.key \
    -subj /C=RU/ST=Moscow/L=Moscow/O=My\ Inc/OU=client/CN=user/emailAddress=jclord@yandex.ru \
    -out van-c.csr
echo "sign sertificate request..."
openssl x509 -req -in van-c.csr -out van-c.crt -sha1 -CA my-ca.crt -CAkey my-ca.key \
    -CAcreateserial -days 3650
echo "making the PKCS12 client cert file..."
openssl pkcs12 -export -in van-c.crt -inkey van-c.key -certfile my-ca.crt -name "local cert" \
    -out van-c.p12 -passout pass:321321321

Переменные BrowserMatch и SetEnvIf UserAgent... испробованы в самых различных сочетаниях
FireFox работает на ура.
В IE сертификат ставится нормально, при просмотре выдает, что он действителен. При обращении к серверу сначала (как и в firefox) выдается сертификат. После одобрения выдается уже описанная ошибка.
Операционка сервера - Fedora. Пробовал и в Fedora 13 и в 17 версиях, openssl версии 1.0.0j
Решение не найдено...


"Internet Explorer и клиентский SSL сертификат"
Отправлено Сергей , 22-Окт-12 19:03 
сообщения в логе сейчас такие:

ssl_engine_io.c(1908): OpenSSL: I/O error, 5 bytes expected to read on BIO#7f0fc12b1100
ssl_engine_kernel.c(1903): OpenSSL: Exit: error in SSLv3 read client certificate A

ssl_engine_kernel.c(1903): OpenSSL: Exit: error in SSLv3 read client certificate A

(70014)End of file found: SSL handshake interrupted by system [Hint: Stop button pressed in browser?!]
Connection closed to child 0 with abortive shutdown (server linux.local:443)

Connection to child 1 established (server linux.local:443)

ssl_engine_kernel.c(1866): OpenSSL: Handshake: start

ssl_engine_kernel.c(1874): OpenSSL: Loop: before/accept initialization
ssl_engine_io.c(1908): OpenSSL: I/O error, 11 bytes expected to read on BIO#7f0fc12bc000 [mem: 7f0fc12d5ee0]
ssl_engine_kernel.c(1903): OpenSSL: Exit: error in SSLv2/v3 read client hello A

End of file found: SSL handshake interrupted by system [Hint: Stop button pressed in browser?!]

Connection closed to child 1 with abortive shutdown (server linux.local:443)


"Internet Explorer и клиентский SSL сертификат "
Отправлено Сергей , 24-Окт-12 00:31 
Решил совершенно дурацким, на мой взгляд, способом.
Залез в настройки эксплорера в закладку "Дополнительно", раздел "Безопасность", убрал галки с "предупреждать о не соответствии адреса сертификата","Проверять аннулирование сертификатов издателей","Проверять, не отозван ли сертификат с сервера"
После этого IE заработал с сертификатом.
Причем могу сказать, что сгенерированный сертификат прошел проверку (openssl verify...),
не аннулирован. Может таким образом глючит опция "проверять, не отозван ли..." - у меня нет настроек для отозванных сертификатов, хотел их добавить позже, не знаю. Возможно, не все эти опции отключать надо. Возможно есть некая тонкая настройка сертификата, удовлетворяющая непонятным мне требованиям IE, пока не знаю также. Все эти вещи проверю позже, сейчас мне надо запустить в работу то, что уже работает.
Самое позорное со стороны IE то, что он после проверки сертификата тупо рвет сессию в случае несоответствия этого сертификата его требованиям, не объясняя в чем дело, при этом все сообщения об ошибках, которые получаются в результате, только запутывают.

"Internet Explorer и клиентский SSL сертификат. РЕШЕНО."
Отправлено Сергей , 27-Окт-12 00:16 
Думаю, это последнее мое сообщение в данной теме. Надеюсь, хоть кому-нибудь все это поможет не потерять несколько дней, как это сделал я.
1. Тот набор команд, который а привел выше - вполне рабочий и по нему можно создать рабочие сертификаты.
2. Я был не прав, думая, что вышеописанные опции мешали работать эксплореру в моем случае. Мешала включенная опция поддержки протокола SSLv2. Причем я включал поддержку SSLv2 на сервере также, IE с включенной поддержкой работать отказывался и просто напросто прерывал сессию, не сообщая ни чего толкового, при этом в логах выдавались ошибки, приведенные мной выше.
3. С авторизацией по сертификатам работают клиенты с Firefox без проблем, проверял на нескольких версиях, установленных на windows 7 и на windows XP. Но IE7 и IE8, установленные на Windows XP, работать отказываются - пробовал устанавливать все обновления, какие были, не помогло, а в логах было вот это:
Non-default virtual host with SSLVerify set to 'require' and VirtualHost-specific CA certificate list is only available to clients with TLS server name indication (SNI) support.
Дело тут в том, что у меня несколько сайтов с ssl на одном IP. Судя по информации, которую я нашел, в IE есть поддержка SNI (которая требуется от браузеров и серверов для нормальной работы в таких условиях) только начиная с IE7, установленных как минимум на windows vista (насчет этого см. вот эту ссылку http://www.techrepublic.com/blog/opensource/configure-apache...)
Для того, чтобы наладить работу с клиентом из-под IE8 на Wındows XP, мне пришлось просить провайдера выделить дополнительный IP-адрес и соответственно настраивать виртуальный хост.

Ну вроде все.


"Internet Explorer и клиентский SSL сертификат. РЕШЕНО."
Отправлено VArtem , 30-Апр-13 17:54 
Отключение поддержки SSL 2.0 в IE реально спасает. Большое спасибо!

"Internet Explorer и клиентский SSL сертификат"
Отправлено Andrey Mitrofanov , 20-Окт-12 11:16 
> С Internet Explorer как всегда проблемы.  Сертификат импортировался нормально, захожу > Кто сталкивался с подобными траблами?

Ччё, MSDN не помогает??

G://self-signed cert client ie9

How to make IE8 trust a self-signed certificate in 20 irritating steps
http://stackoverflow.com/questions/681695/what-do-i-need-to-...

Да, про IE9 тут:
http://superuser.com/questions/307062/ie9-permanently-accept...


"Internet Explorer и клиентский SSL сертификат"
Отправлено Сергей , 20-Окт-12 15:53 
> Ччё, MSDN не помогает??
> G://self-signed cert client ie9
> How to make IE8 trust a self-signed certificate in 20 irritating steps
> http://stackoverflow.com/questions/681695/what-do-i-need-to-...
> Да, про IE9 тут:
> http://superuser.com/questions/307062/ie9-permanently-accept...

осмотрел все по ссылкам, не помогло. Перепроверил и клиентский сертификат и сертификат в доверенном корневом центре сертификации. Установил и для текущего пользователя и для локального компьютера. Инструкцию наизусть скоро запомню :-(
И в "надежные узлы" в IE установил, и TLS включил (без включения просто выдавался запрет на доступ). В логах apache при попытке доступа выдается:
Re-negotiation handshake failed: Not accepted by client!?
Если же ставить этот сертификат на firefox - работает отлично, причем пробовал на разных версиях. В IE7 тоже не идет, но похоже из-за отсутствия поддержки TLS 1.2 (у него в свойствах нет соответствующих флажков)