Подтвердить что ты не робот

Выход из системы клиента https/relogin

У меня есть веб-сайт, использующий аутентификацию сертификата ssl. Как заставить веб-браузер с сервера снова запрашивать сертификат, который будет использоваться? Он будет полезен для выхода из системы, но здесь используется режим переключения идентификатора пользователя.

Я помню кое-что о том, как направлять пользователя на страницу с настройками ssl, несовместимыми с текущим сертификатом проверки подлинности, но не смог найти правильные настройки.

В моей настройке используется apache mod-ssl, но также приветствуется решение IIS.

Обновление: Я специально задаю серверную сторону: как настроить URL-адрес на том же имени хоста, что требует сертификатов клиента, но отклоняет все сертификаты.

Для Firefox javascript:window.crypto.logout(); работает с незначительными неудобствами пользователя (которые, как мне кажется, могут быть написаны сценарием).

4b9b3361

Ответ 1

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

С клиентской стороны есть некоторые методы JavaScript, но они не поддерживаются по всем направлениям (см. этот вопрос).

Используя Apache Tomcat 7, вы можете аннулировать сеанс SSL/TLS, используя атрибут request, как описано в этом вопросе.

Я не знаю ни одного крючка, который позволит вам сделать это с помощью Apache Httpd (и mod_ssl). Механизмы, используемые для Apache Httpd (например, mod_php, CGI, FCGI,...), как правило, не могут изменять любые параметры или переменные среды, заданные с помощью mod_ssl, что необходимо для аннулирования сеанса.

В IIS этот вопрос остается без ответа.

Общий способ, с точки зрения браузера, заключается в том, чтобы перейти к его настройке и очистить состояние SSL (это зависит от браузера, но обычно требуется, по крайней мере, несколько диалоговых окон, а не только быстрая кнопка, по крайней мере, не без плагина).

Ответ 2

С веб-браузера на стороне клиента вы можете сделать это для MSIE (Internet explorer): очистите состояние SSL, перейдя в меню "Сервис" > "Свойства обозревателя" > "Содержимое" (вкладка) > "Очистить состояние SSL".

В firefox (до версии 20) вы можете: Инструменты | Начните приватный просмотр.

Затем перейдите на страницу, о которой идет речь. Или затем "Инструменты | остановить закрытый просмотр", а затем...

Затем, когда вы перезагрузите страницу, на которой вы находитесь, вам будет предложено представить новый клиентский сертификат (если у вас более одного из CA, которому доверяет ваш сервер). В противном случае, если у вас только один сертификат, он будет использовать один и только один сертификат клиента PKI, который находится в вашем магазине.

Ответ 3

Для выхода из системы прочитайте это сообщение: https://security.stackexchange.com/info/36853/is-it-possible-to-force-a-new-ssl-session#

На стороне клиента сеансы SSL обычно хранятся в ОЗУ. Например, Internet Explorer состоит из нескольких процессов, которые говорят друг с другом, и вы должны убить их всех, чтобы заставить его забыть сеанс SSL (на практике это происходит только тогда, когда вы закрыли все окна IE).

Альтернативой может быть закрытый браузер с javascript.