Strona 1 z 1

apache i przekierowanie https na port 443 lub 80

: 2017-07-15, 13:43
autor: aksnet
Witam

Do tej pory wysyłanie użytkownikom komunikatów (blokowanie niepłacących) miałem rozwiązane poprzez
przekierowywanie ruchu www na własny serwer www 10.0.0.2:80 w stylu:

Kod: Zaznacz cały

iptables -t nat -A messages -p tcp -s 10.0.1.8 --dport 80 -j DNAT --to 10.0.0.2:80
iptables -A messages -s 10.0.1.8 -j DROP
Ponieważ coraz więcej stron używa https potrzebuję rozszerzyć przekierowanie o port 443:

Kod: Zaznacz cały

iptables -t nat -A messages -p tcp -s 10.0.1.8 --dport  80 -j DNAT --to 10.0.0.2:80
iptables -t nat -A messages -p tcp -s 10.0.1.8 --dport 443 -j DNAT --to 10.0.0.2:443
iptables -A messages -s 10.0.1.8 -j DROP
Niestety pojawiły się problemy.
1. jeśli przekierowuję port 443 na swój serwer https://10.0.0.2 przeglądarka wyświetla komunikat o niezaufanym certyfikacie
2. gdy przekierowuję port 443 na http://10.0.0.2 dostaję komunikat przegladarki: 'Nie udało się nawiązać bezpiecznego połączenia'


konfiguracja httpd-vhosts.conf dla 10.0.0.2:80 wygladala tak:

Kod: Zaznacz cały

<VirtualHost 10.0.0.2:80>
    ServerName 10.0.0.2:80
    DocumentRoot "/home/www/virtual"
    RewriteEngine on
    RewriteRule ^.*$ /home/www/virtual/index.php
    ErrorLog "/var/log/httpd/virtual-error_log"
    CustomLog "/var/log/httpd/virtual-access_log" common
</VirtualHost>
dla 10.0.0.2:443 testuję taką (czy poprawna???):

Kod: Zaznacz cały

<VirtualHost 10.0.0.2:443>
    ServerName 10.0.0.2:443
    DocumentRoot "/home/www/virtual"
    RewriteEngine on
    RewriteCond %{HTTPS} on
    RewriteRule ^ http://10.0.0.2 [L,R=301]
    ErrorLog "/var/log/httpd/virtual-error_log"
    CustomLog "/var/log/httpd/virtual-access_log" common
    SSLEngine On
    SSLCertificateFile /etc/httpd/server.crt
    SSLCertificateKeyFile /etc/httpd/server.key
</VirtualHost>
Macie jakieś pomysły?

Re: apache i przekierowanie https na port 443 lub 80

: 2017-07-15, 15:42
autor: Lizard
aksnet pisze:
2017-07-15, 13:43
1. jeśli przekierowuję port 443 na swój serwer https://10.0.0.2 przeglądarka wyświetla komunikat o niezaufanym certyfikacie
Komunikat sugeruje, że Twój certyfikat nie jest podpisany przez zaufany urząd certyfikacji.
aksnet pisze:
2017-07-15, 13:43
2. gdy przekierowuję port 443 na http://10.0.0.2 dostaję komunikat przegladarki: 'Nie udało się nawiązać bezpiecznego połączenia'
Przeglądarka przy połączeniu przez HTTPS oczekuje transmisji szyfrowanej, a po przekierowaniu serwer odpowiada czystym tekstem. Stąd ten komunikat. Zamiast zmieniać porty przez iptables skorzystaj z opcji Redirect Apache'a:

Kod: Zaznacz cały

<VirtualHost 10.0.0.2:443>
    ServerName 10.0.0.2:443

    Redirect / http://10.0.0.2/

    DocumentRoot "/home/www/virtual"
    ErrorLog "/var/log/httpd/virtual-error_log"
    CustomLog "/var/log/httpd/virtual-access_log" common
    SSLEngine On
    SSLCertificateFile /etc/httpd/server.crt
    SSLCertificateKeyFile /etc/httpd/server.key
</VirtualHost>
Nie testowałem przekierowania z HTTPS na HTTP, ale w drugą stronę się sprawdza.

Re: apache i przekierowanie https na port 443 lub 80

: 2017-07-15, 18:36
autor: aksnet
Zrobiłem przekierowanie, ale przeglądarki dalej mają z nim problem.

Firefox wyświetla stronę:
Logowanie do sieci
Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu.
(pojawia się przycisk, którego naciśnięcie nic nie daje)

Chrome generuje stronę:
http://www.gstatic.com/generate_204
i tam wyświetla mój komunikat :)


Wydaje mi się że przekierowanie z https na http nie zadziała.
Przeglądarki wykrywają przekierowanie na nieszyfrowane połączenie i przerywają.

Jedynym rozwiązaniem wydaje się być pokombinowanie z certyfikatem.


PS.
Czy mogę jakoś sam wygenerować/skopiować certyfikat do którego przeglądarka się nie przyczepi?

Re: apache i przekierowanie https na port 443 lub 80

: 2017-07-16, 09:22
autor: Lizard
Twój link coś nie współpracuje:

Kod: Zaznacz cały

$ wget http://www.gstatic.com/generate_204
--2017-07-16 10:20:20--  http://www.gstatic.com/generate_204
Translacja www.gstatic.com (www.gstatic.com)... 172.217.20.195
Łączenie się z www.gstatic.com (www.gstatic.com)|172.217.20.195|:80... połączono.
Żądanie HTTP wysłano, oczekiwanie na odpowiedź... 204 No Content
2017-07-16 10:20:20 (0,00 B/s) - zapisano `generate_204' [0]
Skorzystaj z Let's Encrypt, inaczej musiałbyś importować swój certyfikat do każdej przeglądarki w swojej sieci.

Re: apache i przekierowanie https na port 443 lub 80

: 2017-07-17, 14:09
autor: mina86
Zgodnie z nazwą, gstatic.com/generate_204 odpowiada z 204 No Content. (google.com/gen_204 robi to samo). Przeglądarki ‘ignorują’ 204 w tym sensie, że nie zmieniają tego co jest wyświetlane w oknie.

Re: apache i przekierowanie https na port 443 lub 80

: 2017-07-20, 20:49
autor: agresor
Jeśli kontrolujesz także serwer DNS, wydeleguj sobie lokalną domenę dla adresu 10.0.0.2 lub zarejestruj jakąś publiczną, darmową subdomenę / domenę i wygeneruj certyfikat dla niej za pomocą https://letsencrypt.org/ - później przekieruj na stronę https...

Re: apache i przekierowanie https na port 443 lub 80

: 2017-07-22, 12:20
autor: aksnet
Rozumiem, że certyfikatu nie da się wygenerować dla adresu IP tylko musi być domena?

Re: apache i przekierowanie https na port 443 lub 80

: 2017-07-22, 12:52
autor: Lizard
W zasadzie można, ale raczej dla adresów publicznych. Dla lokalnych nikt nie podpisze Ci certyfikatu, więc zostaniesz z komunikatem o niezaufanym połączeniu.