Jeśli używasz apache2, musisz wykonać następujące czynności:
Krok 1: Użyj OpenSSL do wyprodukowania kluczy, które służą do zabezpieczenia Twojej witryny. Klucze te są używane podczas szyfrowania i odszyfrowywania ruchu do bezpiecznej witryny.
$ openssl genrsa -out mydomain.key 1024
To polecenie utworzy 1024-bitowy klucz prywatny i umieści go w pliku mydomain.key.
Pierwsze trzy wiersze nie są konieczne. 1. NameVirtualHostjest przestarzały i zostanie usunięty w przyszłych wersjach Apache. Obecnie jest to już brak operacji. 2. Listen 443może powodować problemy, jeśli apache jest już skonfigurowany do nasłuchiwania na porcie 443, co ma już miejsce w wielu dystrybucjach systemu Linux. Dodaj tylko, jeśli masz pewność, że ta linia nie jest skonfigurowana gdzie indziej.
lanoxx
3
Nie zmieni Listen 80się 443na /etc/httpd/conf/httpd.conf. SSL jest skonfigurowany w /etc/httpd/conf.d/ssl.conf. W przypadku RHEL 6 protokół SSL jest włączony i domyślnie nasłuchuje na certyfikacie z podpisem własnym.
Możesz przejść do domyślnej witryny za pomocą protokołu SSL, przeglądając stronę https://localhost(nie musisz dodawać portu na końcu adresu URL).
Jeśli chcesz przekazać wszystkie żądania HTTP do HTTPS (co, jak sądzę, próbujesz osiągnąć), możesz dodać stałe przekierowanie lub użyć modułu Apache mod_rewrite.
Najłatwiejszym i najbezpieczniejszym sposobem jest skonfigurowanie stałego przekierowania. Włącz nazwanych wirtualnych hostów i dodaj Redirectdyrektywę do VirtualHost w /etc/httpd/conf/httpd.conf.
Za pomocą mod_rewritemożesz także utworzyć nazwanego wirtualnego hosta. To nie jest zalecana metoda, ale zadziała.
NameVirtualHost *:80
<VirtualHost *:80>
# Enable the Rewrite engine
RewriteEngine On
# Make sure the connection is not already HTTPS
RewriteCond %{HTTPS} !=on
# This rewrites the URL and forwards to https
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
Jeśli chcesz wyłączyć SSL, skomentuj te linie /etc/httpd/conf.d/ssl.confi uruchom ponownie Apache.
W rzeczywistości, jeśli dodasz pakiet mod_ssl dla RHEL6, tworzy on /etc/httpd/conf.d/ssl.conf, który ładuje moduł i konfiguruje <VirtualHost _default_:443>ze wszystkimi niezbędnymi parametrami, każdy z komentarzami. mod_sslPakiet nie jest instalowany automatycznie, jeśli zainstalowano httpdpakiet.
jsbillings
1
Chciałbym dodać tylko jedną rzecz do twojego przepisywania: użyj [R=301,L]zamiast po prostu [R,L], w ten sposób przepisanie wykorzystuje stałą opcję kodów stanu HTTP 3xx .
NameVirtualHost
jest przestarzały i zostanie usunięty w przyszłych wersjach Apache. Obecnie jest to już brak operacji. 2.Listen 443
może powodować problemy, jeśli apache jest już skonfigurowany do nasłuchiwania na porcie 443, co ma już miejsce w wielu dystrybucjach systemu Linux. Dodaj tylko, jeśli masz pewność, że ta linia nie jest skonfigurowana gdzie indziej.Nie zmieni
Listen 80
się443
na/etc/httpd/conf/httpd.conf
. SSL jest skonfigurowany w/etc/httpd/conf.d/ssl.conf
. W przypadku RHEL 6 protokół SSL jest włączony i domyślnie nasłuchuje na certyfikacie z podpisem własnym.Możesz przejść do domyślnej witryny za pomocą protokołu SSL, przeglądając stronę
https://localhost
(nie musisz dodawać portu na końcu adresu URL).Jeśli chcesz przekazać wszystkie żądania HTTP do HTTPS (co, jak sądzę, próbujesz osiągnąć), możesz dodać stałe przekierowanie lub użyć modułu Apache
mod_rewrite
.Najłatwiejszym i najbezpieczniejszym sposobem jest skonfigurowanie stałego przekierowania. Włącz nazwanych wirtualnych hostów i dodaj
Redirect
dyrektywę do VirtualHost w/etc/httpd/conf/httpd.conf
.Za pomocą
mod_rewrite
możesz także utworzyć nazwanego wirtualnego hosta. To nie jest zalecana metoda, ale zadziała.Jeśli chcesz wyłączyć SSL, skomentuj te linie
/etc/httpd/conf.d/ssl.conf
i uruchom ponownie Apache.źródło
<VirtualHost _default_:443>
ze wszystkimi niezbędnymi parametrami, każdy z komentarzami.mod_ssl
Pakiet nie jest instalowany automatycznie, jeśli zainstalowanohttpd
pakiet.[R=301,L]
zamiast po prostu[R,L]
, w ten sposób przepisanie wykorzystuje stałą opcję kodów stanu HTTP 3xx .