Як перенаправити з HTTPS на HTTP перед помилкою сервера?


10

Раніше я працював на веб-сайті з SSL сертифікатом, але перестав використовувати SSL сертифікат. Проблема полягає в тому, що більшість зовнішніх посилань на веб-сайт використовують префікс https: //.

Я спробував перенаправити https: // to http: // у файл .htaccess:

RewriteEngine On

RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}

Але здається, як уже вказувалося в іншому місці, що сервер намагається отримати сертифікат, перш ніж активувати переадресацію. Отже, з’являється помилка до того, як переспрямування буде здійснено колись. Помилка є або попередженням про те, що термін дії сертифікату минув, або якщо я видаляю запит на підписання сертифіката, то помилка, що SSL отримав запис, що перевищує максимально допустиму довжину.

Чи є спосіб дозволити належним чином перенаправляти вхідні посилання?


1
Як я вважаю, ви дізналися про SSL, перш ніж відбуватимуться будь-які запити HTTP. Я думаю, у вас виникнуть проблеми з тим, щоб це працювало так, як ви хочете, але я голосую за перехід на ServerFault.com у випадку, якщо хтось знайде кращу відповідь.
Майкл

Здається, що це може бути важко досягти. Втратити посилання, побудовані в Інтернеті, ще гірше - відвідувачі вважають, що сайт порушений або зник.

Відповіді:


16

Різниця між http та https полягає в тому, що https-запити надсилаються через шифроване з допомогою ssl з'єднання. Шифрування, яке зашифровано ssl, має бути встановлено між браузером та сервером, перш ніж браузер надсилає запит http.

HTTP-запити - це насправді http-запити, які надсилаються через шифроване з'єднання ssl. Якщо сервер відмовляється встановити зашифроване з'єднання ssl, у браузера не буде зв’язку для надсилання запиту. Веб-переглядач і сервер не зможуть спілкуватися один з одним. Браузер не зможе надіслати URL-адресу, до якої він хоче отримати доступ, і сервер не зможе відповісти перенаправленням на інший URL.

Тож це неможливо. Якщо ви хочете відповісти на https-посилання, тоді вам потрібен сертифікат ssl.


4

Ні, якби можна було переадресувати з https на http без реального сертифіката, це був би великий недолік безпеки.

Вважайте, що злочинець якимось чином може зробити так, щоб захищений сервер перенаправляв на безпечне з'єднання, не потребуючи справжнього сертифіката https для сайту, це дозволить злочинцю захопити з'єднання, не знаючи про це користувача.

Єдине рішення, яке я бачу, - це отримати дешевий сертифікат, а потім зробити звичайне переспрямування з сайту HTTPS (до якого користувач не може дійти без дійсного сертифіката) на звичайний сайт для цих зовнішніх посилань.


Правильно, краще так. Шкода, що не існує способу встановити схвалений переопределення як власника сайту.

-2

Ви повинні створити у своєму .htaccess

ErrorDocument 500 http://anotherserer.com/errorPage.php

Дякую за пропозицію. Навіть при цьому в .htaccess він не використовує сторінку, яку я вводя, для помилки 500 для цієї конкретної помилки. Здається, що, можливо, нічого в .htaccess не активується через початкову помилку.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.