18

Я получаю много странных ошибок на сайтах, связанных с HTTPS. Эти сайты прекрасно работают в FF и IE, но не загружаются в Chrome. Похоже, что, хотя я запрашиваю незащищенный URL (http), Google Chrome добавляет дополнительный заголовок HTTPS:1 к запросу.

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

Меня не перенаправляют на защищенную страницу (HTTPS), скорее все внутренние URL-адреса в источнике редактируются в https.

Я проверил соединение с Fiddler. Этот анализ не выполняется на моем компьютере, и единственное отличие - это HTTPS:1 заголовок.

Я создал простую страницу PHP, которая печатает переменную $_SERVER . Когда я обращаюсь к нему с помощью Chrome, я вижу: [HTTP_HTTPS] => 1 . Я не могу видеть это с FireFox.

Я попытался очистить все данные, отключить Chrome из своей учетной записи Google, а также удалить и установить Chrome с нуля.

У кого-нибудь есть идеи по этому поводу? Это сводит меня с ума.

4 ответа4

15

Скорее всего, на тех сайтах, с которыми у вас проблемы, работает серверный код, который неправильно интерпретирует заголовок запроса HTTPS: 1 . Например, плагин Wordpress WooCommerce, работающий на около 900 000 сайтов, содержит ошибочный код, который неправильно обрабатывает заголовок HTTPS: 1 . Смотрите их последний патч здесь: https://woocommerce.wordpress.com/2015/07/07/woocommerce-2-3-13-security-and-maintenance-release/

Похожий пост в StackOverflow: https://stackoverflow.com/questions/31565155/wordpress-woocommerce-forces-https-when-it-shouldnt/31570584#31570584

Более подробно: в Chrome реализована спецификация обновлений небезопасных запросов от Консорциума World Wide Web (W3C). Раздел 3.2.1 этой спецификации - поле заголовка HTTP-запроса Upgrade-Insecure-Requests, в котором указано

3.2.1. Поле заголовка HTTP-запроса Upgrade-Insecure-Requests

Поле заголовка HTTP-запроса Upgrade-Insecure-Requests отправляет серверу сигнал, выражающий предпочтение клиента для зашифрованного и аутентифицированного ответа, и что он может успешно обработать директиву upgrade-insecure-запросы, чтобы сделать это предпочтение максимально бесшовным предоставлять.

Это предпочтение представлено следующим ANBF:

"Upgrade-Insecure-Requests:" * WSP "1" * WSP

Сайты, подобные тем, на которых работает плагин WooCommerce в Wordpress, неправильно переписывают все URL-адреса в ответе как https:\\ ссылки, если заголовок HTTPS: 1 был установлен в незащищенном (http) запросе.

Для конечного пользователя этого сайта единственное простое решение - использовать браузер, отличный от Chrome, до тех пор, пока эти сайты не будут отремонтированы.

4

Видимо ошибка в версии 44, похоже, исправлена в последнем обновлении. Я сейчас использую 44.0.2403.107 и проблема, похоже, ушла.

Более подробная информация здесь: http://www.zdnet.com/article/brand-new-chrome-44-release-added-a-bug/

3

это больше, чем просто коммерция, все WordPress, который становится беспорядочным, вызывая плохие CSS, изображения и т. д.

добавьте это в верхнюю часть вашего wp-config.php, чтобы удалить его

if($_SERVER['HTTP_HTTPS'] && !$_SERVER['HTTPS'])
{    unset($_SERVER['HTTP_HTTPS']);
}
1

Вы можете попробовать это, чтобы сбросить заголовок HTTP_HTTPS .

if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') {
    unset($_SERVER['HTTP_HTTPS']);
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .