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 »

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: 2629
Rejestracja: 2005-05-21, 15:48
Lokalizacja: miasto w mieście

Re: apache i przekierowanie https na port 443 lub 80

Post 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.
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 »

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: 2629
Rejestracja: 2005-05-21, 15:48
Lokalizacja: miasto w mieście

Re: apache i przekierowanie https na port 443 lub 80

Post 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.
Error 404 - footer not found
Awatar użytkownika
mina86
Moderator
Posty: 3343
Rejestracja: 2004-06-14, 21:58
Lokalizacja: Linux 5.x x86_64
Kontakt:

Re: apache i przekierowanie https na port 443 lub 80

Post 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.
Zastrzegam sobie prawo nieanalizowania postów pisanych niepoprawną polszczyzną.
Post generated automatically by A.I. system code name ‘mina86’ in response to the previous one.
agresor
Użytkownik
Posty: 620
Rejestracja: 2005-07-03, 21:20

Post autor: agresor »

-
Ostatnio zmieniony 2020-05-29, 10:29 przez agresor, łącznie zmieniany 2 razy.
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 »

Rozumiem, że certyfikatu nie da się wygenerować dla adresu IP tylko musi być domena?
Awatar użytkownika
Lizard
Moderator
Posty: 2629
Rejestracja: 2005-05-21, 15:48
Lokalizacja: miasto w mieście

Re: apache i przekierowanie https na port 443 lub 80

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