Обнаружить ненадежный доступ SSL на стороне сервера?

Вопрос

Есть ли способ определить, доверяет ли посетитель SSL-соединению / сертификату? Я действительно не мог найти что-либо в Интернете или на stackru. Я думаю, что это довольно необычный вопрос.

Вариант использования

Я использую сертификат от StartSSL. Он отлично работает для большинства распространенных и современных браузеров. Но на моем Windows Phone с помощью IE я получаю предупреждение. Это связано с тем, что корневой сертификат по умолчанию не известен IE в Windows Phone.

Решение простое: просто загрузите сертификат - два клика / нажатия. Я хотел бы предоставить небольшое руководство для обычного посетителя о том, как это сделать. Однако, только посетители с проблемами должны получить сообщение.

2 ответа

Посетители, которые подключаются к вашему сайту через HTTPS, просто не попадут на ваш сайт, если они не доверяют вашему сертификату. После добавления исключения вы не сможете определить, является ли оно обычно доверенным или исключением.

Возможно, вы могли бы попытаться составить список пользовательских агентов и сделать предположение о том, какими должны быть их CA по умолчанию, чтобы иметь возможность отображать дополнительное сообщение в этом случае. Это не идеальное правило (поскольку вы никогда не можете полностью контролировать то, чему доверяет клиент, это ответственность пользователя / администратора), и оно имеет недостатки, связанные с контентом, специфичным для пользовательского агента; в частности, это не обязательно надежно, у вас не будет полной базы данных, и пользователи, которые уже добавили исключение или импортировали сертификат навсегда, увидят это дополнительное сообщение (если вы не используете что-то вроде файла cookie для запоминания).

Если ваша начальная страница находится поверх обычного HTTP, вы можете попробовать XHR-запрос к вашему HTTPS-сайту и сообщить, работал ли он вообще. (Возможно, вам придется принять во внимание ту же Политику происхождения.)

Я не уверен, есть ли надежный способ автоматического определения этого состояния. Возможно, вам придется положиться на обходной путь.

Определите, поступил ли запрос с телефона, проверив user-agent в заголовке, проверьте, обращаются ли они к вашему сайту впервые (отсутствие cookie-файла вашего сайта и т. Д.), И, если они пользователь впервые, перенаправьте ответ на (HTTP).) страница с инструкцией по установке сертификата. Вы можете установить флажок на этой странице, чтобы пользователи подавляли это поведение перенаправления в будущем. Если они хотят, чтобы он подавлялся, установите куки или сохраните свои предпочтения на сервере (если есть аутентификация).

Другие вопросы по тегам