2010-01-04 1 views
7

Мне было интересно узнать, знает ли кто-нибудь из вас, есть ли возможность в javascript или php для проверки наличия у клиента определенного сертификата клиента, установленного в браузере.Тестирование, если клиентский сертификат установлен в клиентском браузере

Дело в том, что у нас установлен сертификат сервера, но для признания его клиентами, им нужны два клиентских сертификата, которые заставляют их распознавать полномочия эмитента сертификата нашего сервера. Мы хотели бы протестировать браузер для этих двух сертификатов, если их там нет, мы хотим предложить клиенту загрузить их до входа в режим https ...

Любой может помочь? Пожалуйста, сообщите свой ответ, если вы его знаете.

+1

Необходимо проверить только один сертификат на стороне клиента, корневой сертификат. –

+0

Да, дело в том, что наш новый сертификат сервера зависит от нового и неизвестного для всех браузеров полномочий. Нам нужен браузер, например firefox, для загрузки нового корневого центра сертификации, чтобы он мог распознать наш сертификат сервера. Но я не знаю, как тестировать, есть ли в браузере корневой ЦС, или если ему нужно его загрузить. Как только вы подключаетесь на https к нашему серверу, вы получаете, что наш серверный сертификат не является надежным, потому что полномочия неизвестны. Если вы не установите клиентский сертификат для корневого центра сертификации. – Fabien

+0

Это не то, что означает «клиентский сертификат». Вы хотите знать, доверяет ли конкретный корневой сертификат клиенту. Это другое. –

ответ

-1

Заставляет пользователей загружать и устанавливать домашний сертификат CA, является уродливым и ненавистным. Вместо этого покажите им любовь и заплатите США за 30 долларов США, чтобы получить сертификат SSL, подписанный авторитетным, уже доверенным центром сертификации.

+0

Ну ... Мы используем доверенный сертификат, но компания недавно изменила свой ЦС, и мы уже заплатили им за сертификат этого сервера, поэтому мы хотели бы использовать его. Так же, как они имеют новый сертификат сертификации ROOT CA, браузеры не обновлены, не знают их. Мы все знаем, что люди не часто обновляют свой браузер ... и сафари, firefox не работают через обновление Windows ... Поэтому мы пытаемся найти решение. Но, конечно же, мы действительно недовольны этим изменением и тем самым нашим поставщиком сертификатов SSL. Слишком плохо, это была правильная цена и была признана всем браузером в начале ... – Fabien

+0

Наш серверный сертификат является сертификатом wildcart и намного больше 30 $ :) – Fabien

+0

Все еще я согласен с вами, это процедура дерьма, чтобы люди загрузить и установить сертификат ROOT CA ... Этого не должно быть. Нам не повезло. – Fabien

0

как о предупреждающем сообщении, которое будет скрыто javascript, который будет загружен с вашего сайта https.

В предупреждающем сообщении вы можете связать сайт обновления Windows или везде, где обновленные корневые сертификаты могут быть загружены в их браузер.

0

PHP - это серверный язык. Если вы действительно хотите протестировать это, вам нужно сделать это с помощью JavaScript, а затем отправить запрос AJAX на PHP.

Но я думаю, что есть еще одно решение вашей проблемы. Обычно, когда ЦА меняет свое имя и т. Д., У них обычно появляются новые «промежуточные сертификаты», которые вы можете использовать. (Если у вас есть сервер apache httpd, вы можете также искать «ca bundle» на своем веб-сайте.) С помощью этого пакета вы можете отправить новый сертификат CA вместе с сертификатом.

3

Вы можете сделать это на стороне клиента, используя javascript для запроса известного файла из защищенного (https) источника. если запрос терпит неудачу, значит, клиент отказался принять ваш сертификат (или другую сетевую ошибку), в этот момент вы можете вывести сообщение, чтобы попросить пользователя установить корневой сертификат со ссылкой на корневой сертификат.

Это должно быть сделано с незащищенной страницы. в противном случае пользователь может отказаться от вашего сертификата и никогда не загружать страницу для начала, поэтому ваш javascript никогда не запускается

Это не может быть сделано на PHP, поскольку php (на стороне сервера) не может определить, имеет ли браузер клиента конкретный root ca установлен

Я, однако, не сделал этого. вместо этого получите правильный сертификат.

У вас недостаточно понимания того, как работает SSL в целом. Я предлагаю потратить некоторое время на понимание того, как работает SSL и как используются сертификаты.

DC

узнать об отправке и получении ответов HTTP с JavaScript читать эту страницу ..

http://www.w3schools.com/XML/xml_http.asp

Он может быть использован для отправки и получения любых текстовых данных, а не только XML. Это очень легко реализовать, но вы должны знать о проблемах с версией браузера.

DC

+0

Я подтверждаю, что имею плохие знания в работе SSL. В Интернете так много технологий, что вы не можете знать и быть специалистами по всем вопросам, почему я попросил о помощи. С тех пор, как мы решили решить проблему, разместим на нашем веб-сайте страницу без https, объяснив, что перед тем, как перейти к следующей защищенной странице, необходимо установить новые сертификаты. Это не очень приятно, но это единственное, что мы нашли для решения нашей проблемы ... О вашем решении, интересно, как вы запрашиваете файл через javascript .. есть ли какая-либо функция загрузки? вы используете document.location? Вопрос только для неофициальной цели. – Fabien

+0

Я обновил свой ответ, чтобы включить ссылку на использование javascript для загрузки файла с сервера. это основа для большинства функций ajax – DeveloperChris