Kiedyś prowadziłem stronę internetową z certyfikatem SSL, ale przestałem używać certyfikatu SSL. Problem polega na tym, że większość zewnętrznych linków do strony używa prefiksu https: //.
Próbowałem przekierowania https: // do http: // w pliku .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}
Ale wydaje się, jak już wspomniano gdzie indziej, że serwer próbuje odzyskać certyfikat przed aktywacją przekierowania. Dlatego przed wyświetleniem przekierowania pojawia się błąd. Błąd jest albo ostrzeżeniem o wygaśnięciu certyfikatu, albo jeśli usunę żądanie podpisania certyfikatu, to błąd, że SSL otrzymał rekord przekraczający maksymalną dopuszczalną długość.
Czy jest jakiś sposób, aby umożliwić prawidłowe przekierowanie połączeń przychodzących?
apache-2.2
web-server
.htaccess
http
https
użytkownik981178
źródło
źródło
Odpowiedzi:
Różnica między http a https polega na tym, że żądania https są wysyłane przez połączenie szyfrowane ssl. Połączenie szyfrowane ssl musi zostać ustanowione między przeglądarką a serwerem, zanim przeglądarka wyśle żądanie HTTP.
Żądania HTTP są w rzeczywistości żądaniami HTTP wysyłanymi za pośrednictwem szyfrowanego połączenia ssl. Jeśli serwer odmówi nawiązania połączenia szyfrowanego ssl, przeglądarka nie będzie mieć połączenia, z którego mógłby wysłać żądanie. Przeglądarka i serwer nie będą mogły rozmawiać ze sobą. Przeglądarka nie będzie mogła wysłać adresu, do którego chce uzyskać dostęp, a serwer nie będzie mógł odpowiedzieć przekierowaniem na inny adres URL.
To nie jest możliwe. Jeśli chcesz odpowiadać na linki https, potrzebujesz certyfikatu ssl.
źródło
Nie, gdyby możliwe było przekierowanie z https na http bez prawdziwego certyfikatu, byłby to poważny błąd bezpieczeństwa.
Rozważmy, że przestępca może w jakiś sposób sprawić, że bezpieczny serwer banku przekieruje do niepewnego połączenia bez potrzeby posiadania prawdziwego certyfikatu https dla witryny, pozwoli to przestępcy przejąć połączenie bez wiedzy użytkownika.
Jedyne rozwiązanie, jakie widzę, to uzyskanie taniego certyfikatu, a następnie normalne przekierowanie ze strony HTTPS (do której użytkownik nie może uzyskać dostępu bez ważnego certyfikatu) na zwykłą stronę dla tych zewnętrznych linków.
źródło
Powinieneś utworzyć w swoim .htaccess
źródło