IE8 window.open SSL сертификат выдаётся - PullRequest
0 голосов
/ 16 августа 2010

У меня есть веб-приложение, которое использует самозаверяющий сертификат.Когда вы входите в приложение, вы должны принять сертификат.Это боль, но .. с этим пока все в порядке, и все в порядке.Когда вы нажимаете на ссылку справки, он использует java-скрипт window.open, чтобы открыть справку в новом окне.Это все отлично работает.За исключением IE8.
В IE8, когда я использую window.open, чтобы открыть файл справки, он снова просит пользователя принять сертификат SSL.Это как в новой зоне безопасности или что-то в этом роде.Это не проблема в старых IE или Firefox.

Кто-нибудь знает способ обойти это?Есть ли способ открыть новое окно, но сохранить его в том же сеансе безопасности?

Мне не нужно решение, включающее настройку IE, я не хочу добавлять шаги настройки IE в нашуруководство по установке!И на этом этапе нецелесообразно ставить надлежащий сертификат, как бы мне этого хотелось.

Обновление: URL-адрес приложения просто localhost: port.Файл справки просто help.html.У нас та же проблема с окном About.About.html.

Ответы [ 2 ]

0 голосов
/ 31 августа 2010

Может помочь проект с открытым исходным кодом Forge. Он был создан, чтобы помочь решить эту проблему: безопасный доступ к веб-приложениям, не требующий от пользователя обработки предупреждений о самозаверяющих сертификатах и ​​т. Д.

Проект Forge:

http://github.com/digitalbazaar/forge/blob/master/README

Сообщение в блоге, рассказывающее о проблеме и о том, как использовать Forge для ее решения:

http://blog.digitalbazaar.com/2010/07/20/javascript-tls-1/2/

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

Способ 1: Ваши пользователи могут получить доступ к приложению, работающему на локальном хосте, через защищенный SSL сайт (не локально, а через домен в Интернете). Чтобы это произошло, Forge туннелирует SSL через Flash, который может выполнять междоменные запросы. Детали этого абстрагированы от всего, что вам нужно было бы добавить в ваше приложение. Все ваши пользователи будут заходить на один и тот же веб-сайт, который им удобнее и, возможно, легче запомнить, чем "localhost: 12345", и загружать некоторый JavaScript. Затем этот JavaScript будет выполнять междоменные запросы SSL к «localhost: 12345» для отображения интерфейса. Вот часть реинжиниринга ... если ваше веб-приложение еще не использует ajax для обновления своего контента и отображения интерфейса, вам нужно изменить его, чтобы сделать это. Это потому, что вся междоменная и SSL-магия происходит через JavaScript. Другая часть, которая вам понадобится, - это возможность для вашего приложения загружать и хранить самозаверяющие сертификаты, которые оно генерирует, на сервер, к которому ваши пользователи обращаются. Таким образом, он может быть включен в качестве доверенного сертификата при доступе к веб-сайту и загрузке JavaScript. Этот метод обеспечивает безопасный трафик к приложению, работающему на локальном хосте, без раздражающих предупреждений безопасности.

Если у вас еще нет веб-сайта с защитой SSL или вы не хотите платить за него, метод №2 может быть более привлекательным.

Метод 2: Этот метод немного менее безопасен, но не должен представлять серьезной угрозы безопасности, поскольку приложение работает на локальном хосте. Этот метод также быстрее реализовать. В этом методе вы загружаете JavaScript Forge с сервера localhost вместе с сертификатом, которому нужно доверять. С этого момента JavaScript Forge делает https вызовы для отображения интерфейса / взаимодействия с приложением. Это означает, что все равно необходимо будет выполнить те же изменения интерфейса ajax, что и в # 1, однако не нужно настраивать систему для хранения самозаверяющих сертификатов (или аналогичных). Опять же, недостатком является то, что сертификат, которому нужно доверять, и Forge JavaScript изначально загружаются через незащищенное соединение. Тем не менее, это соединение с localhost, поэтому оно не так важно, как если бы оно было загружено через Интернет.

Таким образом, здесь не требуется ноль работы, но в зависимости от сложности вашего приложения или от того, как вы его уже написали, это может быть не так сложно. И, как только это будет сделано, ваши пользователи будут иметь более плавный опыт (без каких-либо дополнительных инструкций для принятия сертификатов).

0 голосов
/ 16 августа 2010

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

Ваш выбор:

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