apache i przekierowanie https na port 443 lub 80

Serwery i sieci oparte na Slackware, wszelkiego rodzaju usługi, troubleshooting.

Moderatorzy: Moderatorzy, Administratorzy

Awatar użytkownika
aksnet
Użytkownik
Posty: 70
Rejestracja: 2008-03-02, 19:09
Lokalizacja: z 10.0.1.1

apache i przekierowanie https na port 443 lub 80

Post autor: aksnet » 2017-07-15, 13:43

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?

Awatar użytkownika
Lizard
Moderator
Posty: 2559
Rejestracja: 2005-05-21, 15:48
Lokalizacja: miasto w mieście

Re: apache i przekierowanie https na port 443 lub 80

Post autor: Lizard » 2017-07-15, 15:42

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.
Error 404 - footer not found

Awatar użytkownika
aksnet
Użytkownik
Posty: 70
Rejestracja: 2008-03-02, 19:09
Lokalizacja: z 10.0.1.1

Re: apache i przekierowanie https na port 443 lub 80

Post autor: aksnet » 2017-07-15, 18:36

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?

Awatar użytkownika
Lizard
Moderator
Posty: 2559
Rejestracja: 2005-05-21, 15:48
Lokalizacja: miasto w mieście

Re: apache i przekierowanie https na port 443 lub 80

Post autor: Lizard » 2017-07-16, 09:22

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.
Error 404 - footer not found

Awatar użytkownika
mina86
Moderator
Posty: 3309
Rejestracja: 2004-06-14, 21:58
Lokalizacja: Linux 4.x x86_64
Kontakt:

Re: apache i przekierowanie https na port 443 lub 80

Post autor: mina86 » 2017-07-17, 14:09

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.
Zastrzegam sobie prawo nieanalizowania postów pisanych niepoprawną polszczyzną. :: Post generated automatically by A.I. system called “mina86” in response to the previous one. :: Tiny Applications

Awatar użytkownika
agresor
Użytkownik
Posty: 722
Rejestracja: 2005-07-03, 21:20
Lokalizacja: Toruń
Kontakt:

Re: apache i przekierowanie https na port 443 lub 80

Post autor: agresor » 2017-07-20, 20:49

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...
[A] dvanced [G] enetic [R] esearch [E] arly [S] imulated [O] n [R] eality
Liberate my madness...

Awatar użytkownika
aksnet
Użytkownik
Posty: 70
Rejestracja: 2008-03-02, 19:09
Lokalizacja: z 10.0.1.1

Re: apache i przekierowanie https na port 443 lub 80

Post autor: aksnet » 2017-07-22, 12:20

Rozumiem, że certyfikatu nie da się wygenerować dla adresu IP tylko musi być domena?

Awatar użytkownika
Lizard
Moderator
Posty: 2559
Rejestracja: 2005-05-21, 15:48
Lokalizacja: miasto w mieście

Re: apache i przekierowanie https na port 443 lub 80

Post autor: Lizard » 2017-07-22, 12:52

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.
Error 404 - footer not found

ODPOWIEDZ