Strona 1 z 2

Przekierowanie z http na https

: 11 kwietnia 2011, 17:24
autor: michalko
Mam na serwerze zainstalowany panel ISPConfig3. Domyślnie działa na

Kod: Zaznacz cały

http://example.com:8080
W pliku .vhost włączyłem SSL, dzięki czemu mam szyfrowane połączenie na

Kod: Zaznacz cały

https://example.com:8080
Teraz bym chciał, żeby jak ktoś wejdzie na

Kod: Zaznacz cały

http://example.com:8080
to zostanie przekierowany na:

Kod: Zaznacz cały

https://example.com:8080
W tej chwili na http:// mam jedynie nieładny:

Kod: Zaznacz cały

Bad Request
Można takie przekierowanie ustawić w pliku .vhost? Www działa na Apache2.

: 12 kwietnia 2011, 10:55
autor: srebrny
Nie wiem jak z vhostami ale na pewno takie coś da się ustawić poprzez .htaccess

Podam link
http://www.webconfs.com/how-to-redirect-a-webpage.php

: 12 kwietnia 2011, 17:40
autor: michalko
Gdyby chodziło o przekierowanie:

Kod: Zaznacz cały

http://example.com
na:

Kod: Zaznacz cały

https://example.com
to nie byłoby problemu, a Twój link byłby na miejscu. Problem w tym, że na porcie 8080 działa tylko połączenie szyfrowane. Wejście na

Kod: Zaznacz cały

http://example.com:8080
powoduje wyświetlenie błędu:

Kod: Zaznacz cały

[B]Bad Request[/B]

 Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.

Hint: [B][URL]https://example.com:8080[/URL][/B][url=https://deslay.pl:8080/][B]/[/B][/URL]
Dzięki temu nie działa też rewrite_mod dla http.

: 13 kwietnia 2011, 07:55
autor: LordRuthwen
A nie prościej ci będzie zrobić w miejscu docelowym [url]http://.[/url].. plik php z przekierowaniem na [url]https://.[/url]..

: 13 kwietnia 2011, 08:45
autor: cmike
Plik .htaccess lub konfiguracja VHOSTa:

Kod: Zaznacz cały

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

: 13 kwietnia 2011, 17:54
autor: michalko
Działa, ale tylko na https, przez co wpada w pętle nieskończoną.

LordRuthwen, niestety nie, bo jak już wspomniałem na porcie 8080 nie działa http.

: 17 kwietnia 2011, 15:02
autor: Pacek
Można to zrobić na dwa sposoby:
1. Poprzez ustawienie VitrtualHosta na porcie 443, w którego konfiguracji trzeba zdefiniowac klucze do szyfrowania (obsługę SSL)
2. Poprzez wykorzystanie np. stunel, który potrafi zaszyfrować połączenie w oparciu o klucze podane w konfiguracji.

: 19 kwietnia 2011, 19:21
autor: michalko
No tak pierwszy sposób jest najprostszy, ale to nie rozwiązuje problemu działania ispconfig na porcie 8080.

Nie znalazłem do tej pory rozwiązania. Zastosowałem standardowe rozwiązanie, czyli 2 vhosty, jeden działa na porcie 80, drugi na 443, w tym pierwszym znajdują się reguły mod_rewrite aby po wejściu na http przekierował na https i tyle.

Czyli teraz mam tak:

Kod: Zaznacz cały

http://subdomena.example.com
przekierowuje na

Kod: Zaznacz cały

https://subdomena.example.com
no i tutaj już ukazuje się ISPConfig. Adres jest przyjaźniejszy, ale nadal mnie zastanawia czy da się rozwiązać problem dotyczący tematu.

: 20 kwietnia 2011, 08:25
autor: hello_world
Wydaje mi się że popełniasz błąd z portem.
Nie możesz trzymać połączenia nieszyfrowanego i szyfrowanego na jednym porcie.
Przede wszystkim musisz zdefiniować na jakich portach ma nasłuchiwać apache.

Kod: Zaznacz cały

Listen 80
Listen 443
Potem w sekcji

Kod: Zaznacz cały

<VirtualHost _default_:443>
definiujesz gdzie masz ceryfikat, klucz
Włączasz

Kod: Zaznacz cały

SSLEngine on
i to wszystko
Natomiast kiedy chcesz aby wymusić na ludziach używanie tylko https dopisujesz:

Kod: Zaznacz cały

<VirtualHost TWOJ_IP:80>
  ServerName TWOJA_DOMENA
  Redirect / [url]https://TWOJA_DOMENA/[/url]
</VirtuaHost>

: 08 sierpnia 2011, 13:17
autor: Olivia
Podepnę się do problemu.
Nie możesz trzymać połączenia nieszyfrowanego i szyfrowanego na jednym porcie.
Na nginx mnie się udało. Z:

Kod: Zaznacz cały

http::IP:1234
automatycznie przekierowuje na

Kod: Zaznacz cały

https://IP:1234
Na pewno się da w apache też tak zrobić.