Jak wyłączyć połączenie inne niż ssl w Apache 2.2

10

Używam Apache 2.2 12.04. Aktywowałem połączenie ssl z certyfikatem z podpisem własnym, który działa dobrze, ale teraz chciałbym wyłączyć wszelkie połączenia inne niż ssl .

Użyłem a2dissitewartości domyślnej, ale serwer jest nadal dostępny na porcie, 80nawet po ponownym uruchomieniu serwera.

Proszę, pomóż mi z tym.

użytkownik87954
źródło

Odpowiedzi:

10

W końcu mam to działające:

Oprócz wyłączenia domyślnej strony za pomocą a2dissite default:, edytowałem /etc/apache2/ports.confi komentowałem następujące wiersze:

NameVirtualHost *:80  
Listen 80
użytkownik87954
źródło
9

Lepszym pomysłem jest utrzymanie „połączenia non-ssl” (http), ale trwałe przekierowanie do wirtualnego hosta SSL (https). W takim przypadku .confplik musi wyglądać następująco:

<VirtualHost *:80>

        ServerName www.example.com
        ServerAdmin [email protected]

        # Redirect Requests to SSL
        Redirect permanent "/" "https://www.example.com/"

        ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
        CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined

</VirtualHost>


<IfModule mod_ssl.c>

        <VirtualHost _default_:443>

                ServerName www.example.com
                ServerAdmin [email protected]

                DocumentRoot /var/www/html/www.example.com

                ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
                CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined

                SSLEngine on

                # other configuration directives...

        </VirtualHost>

</IfModule>

Powiązane tematy:

pa4080
źródło
Czy możesz wyjaśnić, dlaczego lepiej nie wyłączać HTTP? Badam zalety i wady wyłączania portu 80.
Marco Marsala
5
@MarcoMarsala, w większości przypadków, gdy HTTP (port 80) jest wyłączony i piszesz w przeglądarce http://your.domain.com(lub po prostu your.domain.com), otrzymasz komunikat „nie znaleziono strony” - chyba że wpiszesz https://your.domain.com...
pa4080