W tym samouczku opisano, jak skonfigurować bezpieczne witryny SSL na serwisie Apache.
Uwaga: ten samouczek jest napisany i testowany dla Debiana 9, 10 i 11 oraz Ubuntu 20.04.
Wymagania.
Aby śledzić ten przewodnik, będziesz musiał mieć następujące czynności:
Instalowanie Apache
Jeśli nie masz zainstalowanego Apache, musimy go zainstalować. Wprowadź polecenia:
Aktualizacja sudo apt
sudo apt instal apache2 openssl
Po zainstalowaniu serwera Apache uruchom usługę i upewnij się, że wszystko działa poprawnie.
Włączanie modułów mod_ssl i mod_rewrite.
Następnym krokiem jest włączenie modułów mod_ssl i mod_rewrite. Aby to zrobić, używamy skryptu A2enMod, który pozwala nam włączyć i wyłączać moduły w konfiguracji Apache.
Użyj poleceń, jak pokazano poniżej:
sudo a2enmod ssl
sudo a2enmod przepisanie
Włączać .Zastąpienie htaccess
Następnym krokiem jest edycja konfiguracji Apache i dodanie wpisu, aby umożliwić ustawienia domyślne apache. Nadrzędne ustawienia są wykonywane w .plik htaccess znajdujący się w katalogu root apache.
sudo vim/etc/apache2/apache2.conf
Przejdź do końca pliku i dodaj następujący wpis:
Zezwolenie na wszystko
Zapisz i zamknij plik.
Generowanie certyfikatu SSL
Istnieją różne sposoby uzyskania bezpłatnego certyfikatu SSL. Narzędzia takie jak generatory Certbot i SSL to świetne opcje.
Jednak w tym przewodniku utworzymy samozadowolenie certyfikatu za pomocą narzędzia OpenSSL.
Utwórz katalog w katalogu konfiguracji Apache jako:
sudo mkdir/etc/apache2/certs
Przejdź do katalogu utworzonego powyżej.
CD/etc/apache2/certs
Uruchom narzędzie OpenSSL, aby wygenerować swój samodzielny certyfikat podany w poniższym poleceniu:
Uwaga: Możesz podać dowolne informacje w tym procesie, z wyjątkiem nazwy zwyczajowej. Upewnij się, aby podać adres IP lub nazwę hosta.
Po pomyślnym zakończeniu procesu powinieneś mieć Apache.CRT i Apache.Klucz w katalogu certs.
Dodawanie CERT do konfiguracji Apache
Dodaj certyfikat, edytując plik konfiguracyjny domyślnej witryny Apache.
sudo vim/etc/apache2/witryny-obsługujący/000-default.conf
Dodaj wirtualny blok hosta na porcie 443, jak pokazano:
ServerAdmin Webmaster@LocalHost
DocumentRoot/var/www/html
ErrorLog $ apache_log_dir/error.dziennik
CustomLog $ apache_log_dir/access.Log łącznie
Sslengine on
SSLCertificateFile/etc/apache2/certs/apache.crt
SSLCertificateKeyFile/etc/apache2/certs/apache.klucz
Przekierowanie do HTTPS.
W większości przypadków będziesz chciał przekierować użytkowników z punktu końcowego SSL do SSL. Robisz to, dodając regułę przepisywania na wirtualnych hostach portu 80.
Dodaj wpis jako:
RewriteEngine on
Przepisanie %https != ON
Przepis ^//?(.*) https: //%Server_name/1 $ [r = 301, l]
Uwaga: Upewnij się, że bloki powyżej znajdują się pod wirtualnym hostem portu 80.
Uruchom ponownie i uzyskaj dostęp do Apache
Po skonfigurowaniu wszystkiego powyżej uruchom ponownie usługę Apache i uzyskaj dostęp do Twojej witryny za pośrednictwem LocalHost.
https: // 127.0.0.1
Możesz wyświetlić informacje o certyfikacie, klikając ikonę blokady w przeglądarce.
Wniosek
W tym przewodniku omówiliśmy sposób włączenia i skonfigurowania SSL na serwisie Apache.