Может помочь проект с открытым исходным кодом 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, поэтому оно не так важно, как если бы оно было загружено через Интернет.
Таким образом, здесь не требуется ноль работы, но в зависимости от сложности вашего приложения или от того, как вы его уже написали, это может быть не так сложно. И, как только это будет сделано, ваши пользователи будут иметь более плавный опыт (без каких-либо дополнительных инструкций для принятия сертификатов).