Skocz do zawartości
Zaloguj się, aby obserwować  
HerrUser

Nietypowe przekierowanie z http na https

Polecane posty

Witam wszystkich. Mam nietypowy problem z przekierowaniami. Otóż chcę zrobić coś takiego: Zakładam stronkę na hekko.pl objętą certyfikatem SSL. Jednakaże sam index.html (tudzież index.php) ma nie być objęty certyfikatem. Zamiast tego internauta zostaje przekierowany na plik znajdujący się na domenie, który już jest objęty SSL. Innymi słowy użytkownik po wpisaniu adresu https://stronka.pl/index.html zastaje przekierowany na adres https://stronka.pl/index2.html, który już posiada szyfrowanie. Wiem, że mogę założyć kilka domen i przekierować z jednej na drugą, ale wyjdą z tego duże koszty. Musiałbym wykupić IP dla domeny, na którą przekieruję i ewentualnie certyfikat u hekko, do tego dochodzą koszty zakupu IP dla domeny, z której następuje przekierowanie (z pewnych względów muszę go mieć dla tej demeny), no i oczywiście jeszcze koszty zakupu samych domen. Stąd moje pytanie: czy da się ustawić SSL dla pojedynczych plików i użyć stosownych przekierowń?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jako, że https i http ma dwa oddzielne porty docelowe (443/80) to można postawić jednego normalnego vhosta http na :80, który w defaulcie ma index.html, który przekierowuje usera na https://adres.docelowy.pl. Pytanie tylko czy takie rozwiązanie Cię satysfakcjonuje, teoretycznie kosztów nie powinno być żadnych, bo to jest jedna linijka w <head>

<meta http-equiv="refresh" content="5;url=https://stronka.pl/">

Efekt będzie taki, że user po wejściu na http://stronka.pl będzie przekierowywany na https://stronka.pl

 

Jeśli natomiast chcemy tylko używać https i mieć wydzielone pliki bez szyfrowania to w teorii dałoby się to zrobić chociażby funkcją location w nginx, pewno w apache'u też jest jakiś odpowiednik. Pytanie tylko czy to będzie działać, w teorii https powinien być całkowicie szyfrowany więc wątpię czy ta metoda się powiedzie :).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zapewne używasz Apache, więc tworzysz plik .htaccess i wrzucasz do niego np:

Options +FollowSymLinks

RewriteEngine on

RedirectMatch 301 ^(.*)$ https://www.czakoszek.eu$1

 

Teraz gry wpiszesz coś http://www.czakoszek.eu/dupa1 to przeżuci Ciebie automatycznie na https://www.czakoszek.eu/dupa1

Edytowano przez Czakoszek (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Teraz gry wpiszesz coś http://www.czakoszek.eu/dupa1 to przeżuci Ciebie automatycznie na https://www.czakoszek.eu/dupa1

Ten przykład mi się podoba :D

Ale jest tutaj jeszcze jeden kruczek. Mianowicie nie chcę by dało się bwzpośrednio wejść na stronę https, tylko poprzez przekierowanie z http. Czyli wpisuję http://www.czakoszek.eu/dupa1 i zostaję przeniesiony do https://www.czakoszek.eu/dupa1, ale wpisuję https://www.czakoszek.eu/dupa1 i daję przeglądarce do zrozumienia, że należy się przekierować na http, bo obecna strona nie nie istnieje, a można jedynie odwołać się do jej nieszyfrowanej wersji. Inaczej mówiąc to tak jakbym wysyłał komunikat, że taka strona nie istnieje i należy użyć http (który de facto przekieruje nas do https). Nie wiem tylko czy to fizycznie możliwe, chociażby dlatego, że przeglądarka może wypluć, że nie można ustanowić bezpiecznego połączenia.

 

A co do vhost, to nie wiem czy hekko standardowo pozwala na coś takiego.

Edytowano przez HerrUser (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Możesz na tej stronie z https-em w php wykrywać poprzez $_SERVER["HTTP_REFERER"] czy byłe wejście z Twojej strony i albo ładować stronę albo przekierowywać.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Możesz na tej stronie z https-em w php wykrywać poprzez $_SERVER["HTTP_REFERER"] czy byłe wejście z Twojej strony i albo ładować stronę albo przekierowywać.

No to już mniej więcej coś takiego, co mogłoby mnie zainteresować, tylko że chcąc przekierować z https na http wysyłam dane zaszyfrowane, a chciałbym zmusić przeglądarkę do przekierowania przesyłając jej header za pomocą http, tak by nie męczyć się wielokrotnie z uciążliwym komunikatem o samopodpisanym certyfikacie, a co najwyżej oglądać go raz po ostatecznym przekierowaniu na https.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak jak wyżej już pisali zainteresuj się przekierowaniem 301 w index.html to powinno załatwić twoją sprawe.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Raczej nie załatwi, bo jak użyję kodu 301/302, to równie dorze będę mógł dobrać się do index.html używając https, a jeżeli w jakiś sposób nie będzie on dostępny jako https, to dostanę, że nie można ustanowić bezpiecznego połączenia/połączenia, bo index.html istnieje tylko dla http, a dla https go nie ma. Do tego nie wystąpi przekierowanie z http...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zawsze dostaniesz pytanie o certyfikat bo zanim cokolwiek serwer przyjmie, wyśle najpierw musi wymienić certyfikaty z przeglądarką a dopiero potem wykona htaccess i php.

Wykup sobie certyfikat (9 dolców na rok) i będziesz miał spokój.

 

Jedynie może się pojawić info w przeglądarce, że następuje przekierowanie ze strony https na http.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×