JS не работает из-за недействительного сертификата SSL, когда пользователь меняет свою системную дату - PullRequest
3 голосов
/ 01 февраля 2012

Когда пользователь входит на мой сайт, я перенаправляю его на https: // URL. (https://www.gruppenunterkuenfte.de/anbieter-bereich.html?next=/#einloggen)

Если пользователь установил неправильную дату на своем компьютере (один год в прошлом), сертификат считается недействительным, поскольку он выдается с началом 3 января 2012 года.

С этим недействительным сертификатом Safari и Chrome соединяются, чтобы заблокировать сценарии, которые загружаются из внешних источников. (Например: https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js),, из-за чего вход в систему не работает.

Теперь мой вопрос: как бы решить эту проблему?

  1. Отправьте серверу дату в JS-коде и сравните ее с JS для текущего времени пользователя. Если он отличается более чем на 24 часа, покажите пользователю предупреждение, чтобы правильно установить его дату. Но это может раздражать пользователей ... И, может быть, у них нет привилегий изменять это.
  2. Не загружать файлы JS из внешних доменов. Тогда сертификат все равно будет недействительным, но страница будет функционировать. Однако я предпочитаю загружать скрипты с ajax.googleapis.com по соображениям производительности.
  3. Можно ли получить сертификат, действительный с любой датой, которую пользователь установил?
  4. Какие-нибудь другие решения, о которых я не думал?

1 Ответ

2 голосов
/ 01 февраля 2012

Полагаю, вы могли бы сделать # 1 (pre-HTTPS), если бы вы действительно этого хотели, но, как указывает dirkbonhomme, это, вероятно, не стоит усилий.

Что касается остальных .... НЕ ДЕЛАЙТЕ ИХ!

Для # 2, если они загружают страницу с недействительным сертификатом, все ставки отключены для безопасности. Зачем вообще беспокоиться о шифровании? Кроме того, вы учите своих пользователей просто нажимать на предупреждения безопасности, что ухудшает общую безопасность Интернета. Люди уже способ слишком готовы слепо принять то, что им говорят всплывающие окна. Такое поведение облегчает нарушения безопасности, распространение вредоносного ПО и т. Д.

Для № 3, нет, не настолько, насколько я знаю. И тебе бы этого не хотелось. Понятие истекающего сертификата важно для целостности системы подписи сертификатов. Поскольку большинство людей не обновляют свои CRL (и, по необъяснимым причинам, большинство браузеров, похоже, не делают этого автоматически), проверка срока действия сертификата является последней линией защиты от сертификатов, которые могли быть украдены или иным образом скомпрометированы. Он устанавливает верхнюю границу того, как долго такие сертификаты могут оставаться активными в дикой природе.

Для # 4 ... правильное решение для пользователя - починить сломанную машину. Очень много схем зависит от точного времени, и пользователь должен знать, что все сломается, если время не будет обновлено должным образом. Если это повторяющаяся проблема для вашей пользовательской базы, возможно, представьте их немного под названием NTP .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...