Jak skonfigurować samodzielny serwer Apache z wirtualnym hostingiem opartym na nazwach z certyfikatem SSL - Część 4
- 3742
- 672
- Maria Piwowarczyk
A Lfce (Krótkie dla Inżynier certyfikowanego Linux Foundation) jest wyszkolonym profesjonalistą, który ma wiedzę specjalistyczną do instalowania, zarządzania i rozwiązywania problemów z usługami sieciowymi w systemach Linux i jest odpowiedzialny za projektowanie, wdrażanie i ciągłe utrzymanie architektury systemu.
W tym artykule pokażemy, jak skonfigurować Apache, aby obsługiwać treści internetowe i jak konfigurować wirtualne hosty i SSL oparte na nazwach, w tym samowystarczalny certyfikat.
Certyfikowany inżynier Linux Foundation - część 4Wprowadzenie programu certyfikacji Fundacji Linux (LFCE).
Notatka: Że ten artykuł nie powinien być kompleksowym przewodnikiem w sprawie Apache, ale raczej punktem wyjścia do samodzielnego nauki na ten temat Lfce egzamin. Z tego powodu nie obejmujemy równoważenia obciążenia apachem w tym samouczku.
Możesz już znać inne sposoby wykonywania tych samych zadań, czyli OK biorąc pod uwagę, że certyfikacja Fundacji Linux jest ściśle oparta na wydajności. Tak więc tak długo, jak ty 'zrobić robotę', masz duże szanse na zdanie egzaminu.
Wymagania
Należy zapoznać się Część 1 bieżącej serii („Instalowanie usług sieciowych i konfigurowanie automatycznego uruchamiania w BOOT”) w celu uzyskania instrukcji instalacji i uruchamiania Apache.
Do tej pory powinieneś mieć zainstalowany i uruchomiony serwer WWW Apache. Możesz to zweryfikować za pomocą następującego polecenia.
# ps -ef | grep -ei '(apache | httpd)' | grep -v grep
Notatka: Że powyższe polecenie sprawdza obecność jednego z nich Apache Lub httpd (najczęstsze nazwy demona internetowego) wśród listy uruchomionych procesów. Jeśli Apache działa, otrzymasz wyjście podobne do następujących.
Sprawdź procesy ApacheOstateczna metoda testowania instalacji Apache i sprawdzania, czy uruchomi się, jest uruchamianie przeglądarki internetowej i wskazuje na adres IP serwera. Powinniśmy mieć następujący ekran lub przynajmniej wiadomość potwierdzającą, że Apache działa.
Sprawdź stronę ApacheKonfigurowanie Apache
Główny plik konfiguracyjny dla Apache może znajdować się w różnych katalogach w zależności od dystrybucji.
/etc/apache2/apache2.conf [dla ubuntu]/etc/httpd/conf/httpd.CONF [dla centu]/etc/apache2/httpd.conf [dla openSuse]
Na szczęście dla nas dyrektywy konfiguracyjne są wyjątkowo dobrze udokumentowane na stronie internetowej Project Apache. Będziemy odwołać się do niektórych z nich w tym artykule.
Obsłużenie stron na samodzielnym serwerze z Apache
Najbardziej podstawowym użyciem Apache jest obsługa stron internetowych na samodzielnym serwerze, na którym nie skonfigurowano żadnych wirtualnych hostów. DocumentRoot dyrektywa określa katalog, z którego Apache będzie obsługiwał dokumenty stron internetowych.
Zauważ, że domyślnie wszystkie żądania są pobierane z tego katalogu, ale możesz również użyć symbolicznych linków i / lub aliasów, aby wskazać również na inne lokalizacje.
Chyba że nie jest dopasowane przez Alias dyrektywa (która umożliwia przechowywanie dokumentów w lokalnym systemie plików zamiast w katalogu określonym przez DocumentRoot), serwer dołącza ścieżkę z żądanego adresu URL do głównego dokumentu, aby wykonać ścieżkę do dokumentu.
Na przykład, biorąc pod uwagę następujące DocumentRoot:
Apache DocumentRootKiedy przeglądarka internetowa wskazuje na [IP serwera Lub Nazwa hosta]/LFCE/TECMINT.html, Serwer zostanie otwarty /var/www/html/lfce/tecmint.html (Zakładając, że taki plik istnieje) i zapisz zdarzenie w dzienniku dostępu za pomocą 200 (OK) odpowiedź.
Dziennik dostępu jest zazwyczaj znaleziony w środku /var/log pod reprezentatywną nazwą, taką jak dostęp.dziennik Lub access_log. Możesz nawet znaleźć ten dziennik (i dziennik błędów) w subdirectory (na przykład, /var/log/httpd w Centos). W przeciwnym razie nieudane zdarzenie będzie nadal zalogowane do dziennika dostępu, ale z 404 (Nie znaleziono) odpowiedź.
Dziennik dostępu ApachePonadto, nieudane zdarzenia będą rejestrowane w Dziennik błędów:
Dziennik błędów ApacheFormat Dziennik dostępu można dostosować zgodnie z Twoimi potrzebami za pomocą Logformat dyrektywa w głównym pliku konfiguracyjnym, podczas gdy nie można zrobić tego samego z Dziennik błędów.
Domyślny format Dziennik dostępu następująco:
Logformat " %h %l %u %t \" %r \ "" %> s %b"" [pseudonim]
Gdzie każda z liter poprzedzonych znakiem procentowym wskazuje serwer do rejestrowania określonej informacji:
Strunowy | Opis |
%H | Zdalna nazwa hosta lub adres IP |
%l | Zdalna nazwa dziennika |
%u | Zdalny użytkownik, jeśli żądanie jest uwierzytelnione |
%T | Data i godzina, kiedy otrzymano żądanie |
%R | Pierwsza linia żądania serwera |
%> s | Ostateczny status żądania |
%B | Rozmiar odpowiedzi [bajty] |
I przezwisko jest opcjonalnym aliasem, którego można użyć do dostosowania innych dzienników bez konieczności ponownego wprowadzania całego ciągu konfiguracji.
Możesz odnosić się do Logformat Dyrektywa [Sekcja formatów dziennika niestandardowego] w dokumentach Apache w celu uzyskania dalszych opcji.
Oba pliki dziennika (dostęp I błąd) reprezentują świetny zasób do szybkiej analizy na pierwszy rzut oka, co dzieje się na serwerze Apache. Nie trzeba dodawać, że są pierwszym narzędziem, którego administrator systemu używa do rozwiązywania problemów.
Wreszcie kolejną ważną dyrektywą jest Słuchać, który informuje serwer, aby przyjął żądania przychodzące w określonym kombinacji portu lub adresu/portu:
Jeśli zdefiniowano tylko numer portu, Apache zostanie słucha danego portu we wszystkich interfejsach sieciowych (znak wieloznaczny * służy do wskazania „wszystkich interfejsów sieciowych”).
Jeśli podano zarówno adres IP, jak i port, Apache będzie słuchać kombinacji podanego portu i interfejsu sieciowego.
Uwaga (jak zobaczysz w poniższych przykładach), że można jednocześnie użyć wielu dyrektyw do słuchania, aby określić wiele adresów i portów do słuchania. Ta opcja instruuje serwer, aby odpowiedział na żądania z dowolnego z wymienionych adresów i portów.
Konfigurowanie wirtualnych hostów opartych na nazwiskach
Pojęcie wirtualnego hosta definiuje poszczególną witrynę (lub domenę), która jest obsługiwana przez tę samą maszynę fizyczną. W rzeczywistości wiele witryn / domen może być podawane z jednego „prawdziwy„Serwer jako wirtualny host. Proces ten jest przejrzysty dla użytkownika końcowego, do którego wydaje się, że różne witryny są obsługiwane przez odrębne serwery Web.
Hosting wirtualny oparty na nazwach pozwala serwerowi polegać na kliencie zgłaszanie nazwy hosta jako części nagłówków HTTP. Tak więc, stosując tę technikę, wiele różnych hostów może udostępniać ten sam adres IP.
Każdy wirtualny host jest skonfigurowany w katalogu wewnątrz DocumentRoot. W naszym przypadku użyjemy następujących manekinów do konfiguracji testowania, z których każda znajduje się w odpowiednim katalogu:
- Ilovelinux.com - /var/www/html/ilovelinux.com/public_html
- LinuxRocks.org - /var/www/html/linuxRocks.org/public_html
Aby strony były poprawnie wyświetlane, będziemy chmod Każdy katalog VirtualHost do 755:
# chmod -r 755/var/www/html/ilovelinux.com/public_html # chmod -r 755/var/www/html/linuxRocks.org/public_html
Następnie utwórz próbkę indeks.html plik w każdym public_html informator:
www.Ilovelinux.comTo jest strona główna www.Ilovelinux.com
Wreszcie, w Centos I OpenSuse Dodaj następującą sekcję na dole /etc/httpd/conf/httpd.conf Lub /etc/apache2/httpd.conf, odpowiednio lub po prostu zmodyfikuj go, jeśli już tam jest.
ServerAdmin [chroniony e -mail] DocumentRoot/var/www/html/iLovelinux.com/public_html Servername www.Ilovelinux.com serveralias www.Ilovelinux.com ilovelinux.com errorLog/var/www/html/iLovelinux.com/błąd.log logformat "" %v %l %u %t \"" %r \ "" %> s %b"" myvhost customLog/var/www/html/iLovelinux.com/dostęp.Log myvhost ServerAdmin [e -mail chroniony] DocumentRoot/var/www/html/linuxRocks.org/public_html Servername www.LinuxRocks.Org Serveralias www.LinuxRocks.Org LinuxRocks.org errorLog/var/www/html/linuxRocks.org/błąd.log logformat "" %v %l %u %t \"" %r \ "" %> s %b"" myvhost customLog/var/www/html/linuxrocks.org/dostęp.log myvhost
Należy pamiętać, że możesz również dodać każdą wirtualną definicję hosta w osobnych plikach wewnątrz /etc/httpd/conf.D informator. Jeśli zdecydujesz się to zrobić, każdy plik konfiguracyjny musi być nazwany w następujący sposób:
/etc/httpd/conf.D/ILovelinux.com.conf/etc/httpd/conf.D/LinuxRocks.org.conf
Innymi słowy, musisz dodać .conf do nazwy witryny lub domeny.
W Ubuntu, Każdy indywidualny plik konfiguracyjny jest nazwany /etc/apache2/Sites-Available/[Nazwa witryny].conf. Każda witryna jest następnie włączona lub wyłączona z A2ENSITE Lub A2dissite Polecenia odpowiednio w następujący sposób.
# A2EnSite/etc/apache2/Sites-dostępna/iLovelinux.com.conf # a2dissite/etc/apache2/witryny-dostępny/iLovelinux.com.conf # a2ensite/etc/apache2/witryny-dostępne/linuxRocks.org.conf # a2dissite/etc/apache2/witryny-dostępne/linuxRocks.org.conf
A2ENSITE I A2dissite Polecenia tworzą łącza do wirtualnego pliku konfiguracyjnego hosta i umieść (lub usuń) je w /etc/apache2/witryny informator.
Aby móc przeglądać obie strony z innego pudełka Linux, musisz dodać następujące wiersze w /etc/hosts plik w tym komputerze w celu przekierowania żądań do tych domen na określony adres IP.
[Adres IP twojego serwera internetowego] www.Ilovelinux.com [adres IP twojego serwera internetowego] www.LinuxRocks.org
Jako środek bezpieczeństwa, Selinux nie pozwole Apache pisać dzienniki do katalogu inne niż domyślne /var/log/httpd.
Możesz wyłączyć Selinux lub ustawić odpowiedni kontekst bezpieczeństwa:
# CHCON SYSTEM_U: Object_r: httpd_log_t: s0/var/www/html/xxxxxx/błąd.dziennik
Gdzie xxxxxx jest katalogiem w środku /var/www/html gdzie zdefiniowałeś swoje wirtualne hosty.
Po ponownym uruchomieniu Apache powinieneś zobaczyć następującą stronę na powyższe adresy:
Sprawdź Apache VirtualHostsInstalowanie i konfigurowanie SSL z Apache
Na koniec utworzymy i zainstalujemy Self-podpisany Certyfikat do użycia z Apache. Ten rodzaj konfiguracji jest dopuszczalny w małych środowiskach, takich jak prywatna LAN.
Jeśli jednak Twój serwer wystawi treść do świata zewnętrznego przez Internet, będziesz chciał zainstalować certyfikat podpisany przez stronę trzeciej, aby potwierdzić jego autentyczność. Tak czy inaczej, certyfikat pozwoli ci zaszyfrować informacje przesyłane do lub w Twojej witrynie.
W Centos I OpenSuse, musisz zainstalować mod_ssl pakiet.
# Yum Update && Yum Instaluj mod_ssl [on Centos] # Zypper Refresh && Zypper Zainstaluj mod_ssl [on OpenSuse]
Podczas gdy w Ubuntu Będziesz musiał włączyć moduł SSL dla Apache.
# A2enmod SSL
Poniższe kroki są wyjaśnione za pomocą Centos Serwer testowy, ale konfiguracja powinna być prawie identyczna w innych rozkładach (jeśli napotkasz jakiekolwiek problemy, nie wahaj się zostawić pytania za pomocą formularza komentarzy).
Krok 1 [Opcjonalnie]: Utwórz katalog, aby przechowywać swoje certyfikaty.
# mkdir/etc/httpd/ssl-CERTS
Krok 2: Wygeneruj swój samokontrolowany certyfikat i klucz, który go chroni.
# OpenSsl req -x509 -nodes -Days 365 -Newkey RSA: 2048 -Keyout/etc/httpd/ssl -certs/apache.klucz -ut/etc/httpd/ssl -CERTS/APACHE.crt
Krótkie wyjaśnienie opcji wymienionych powyżej:
- Req -x509 Wskazuje, że tworzymy certyfikat x509.
- -węzły (No des) oznacza „nie szyfruj klucza”.
- -Dni 365 to liczba dni, w których certyfikat będzie ważny.
- -Newkey RSA: 2048 tworzy 2048-bitowy klucz RSA.
- -Keyout/etc/httpd/ssl-certs/apache.klucz jest absolutną ścieżką klucza RSA.
- -OUT/ETC/HTTPD/SSL-CERTS/APACHE.crt jest bezwzględną ścieżką certyfikatu.
Krok 3: Otwórz wybrany plik konfiguracyjny wirtualnego hosta (lub jego odpowiednia sekcja w /etc/httpd/conf/httpd.conf Jak wyjaśniono wcześniej) i dodaj następujące wiersze do wirtualnego deklaracji hosta słuchania w porcie 443.
SsLengine na SSLCertificateFile/etc/httpd/ssl-CERTS/Apache.crt sslcertificateKeKeyFile/etc/httpd/ssl-certs/apache.klucz
Pamiętaj, że musisz dodać.
NameVirtualHost *: 443
u góry, tuż poniżej
NameVirtualHost *: 80
Obie dyrektywy instruują Apache, aby słuchał na portach 443 I 80 wszystkich interfejsów sieciowych.
Poniższy przykład jest pobierany z /etc/httpd/conf/httpd.conf:
Dyrektywy VirtualHost ApacheNastępnie uruchom ponownie Apache,
# Service Apache2 restart [systemy oparte na Sysvinit i Upstart] # Systemctl restart httpd.serwis [systemy oparte na systemie]
I skieruj przeglądarkę https: // www.Ilovelinux.com. Otrzymasz następujący ekran.
Sprawdź certyfikat Apache SSLŚmiało i kliknij „rozumiem ryzyko"" I ""Dodaj wyjątek"".
Apache ceritfikuj ostrzeżenieNa koniec sprawdź „Na stałe przechowuj ten wyjątek”I kliknij„Potwierdź wyjątek bezpieczeństwa"".
Dodaj ceritficate SSLI zostaniesz przekierowany na swoją stronę główną za pomocą https.
Apache HTTPS WłączoneStreszczenie
W tym poście pokazaliśmy, jak skonfigurować Apache I Nazwa wirtualne hosting z SSL Aby zabezpieczyć transmisję danych. Jeśli z jakiegoś powodu napotkałeś jakiekolwiek problemy, daj nam znać, używając poniższego formularza komentarza. Z przyjemnością pomożemy Ci wykonać udaną konfigurację.
Przeczytaj także
- Apache oparte na IP i wirtualne hosting oparty na nazwach
- Tworzenie wirtualnych hostów Apache z opcjami Włącz/Wyłącz VHosts
- Monitoruj „Apache Web Server” za pomocą narzędzia „Apache GUI”
- « Konfigurowanie serwera proxy Squid z ograniczonym dostępem i konfigurowanie klientów do korzystania z proxy - Część 5
- Ostateczny przewodnik konfiguracji serwera FTP, aby umożliwić anonimowe logowanie »