Konfiguracja Serwera WWW Apache2 (HTTP i HTTPS)
Zadanie 1300: Konfiguracja Serwera WWW Apache2 (HTTP i HTTPS)
Wprowadzenie
Apache HTTP Server (Apache2) to jedno z najpopularniejszych i najstarszych środowisk serwerowych WWW na świecie. Jego elastyczność, wydajność i bogaty ekosystem modułów sprawiają, że jest standardem w wielu środowiskach produkcyjnych. U umiejętność jego konfiguracji, w tym obsługi wirtualnych hostów (Virtual Hosts) oraz szyfrowania SSL/TLS (HTTPS), jest absolutnie kluczowa dla każdego administratora systemu Linux.
W tym zadaniu wcielisz się w rolę administratora, który musi uruchomić nową stronę internetową dla firmy, dostępną zarówno w sieci wewnętrznej, jak i publicznej, zapewniając bezpieczne połączenie.
Cel zadania
Twoim celem jest zainstalowanie serwera Apache2, skonfigurowanie wirtualnego hosta dla dedykowanej domeny (np. mojastrona.local), wygenerowanie certyfikatu SSL (Self-Signed) i wymuszenie bezpiecznego połączenia HTTPS. Na końcu utworzysz prostą stronę powitalną.
Instrukcja Krok po Kroku
Krok 1: Instalacja Apache2
Najpierw zaktualizuj listę pakietów i zainstaluj serwer Apache2.
sudo apt update
sudo apt install apache2 -y
Po instalacji sprawdź status usługi:
sudo systemctl status apache2
Krok 2: Tworzenie Struktury Katalogów i Prostej Strony WWW
Standardowo Apache trzyma strony w /var/www/html. Dla porządku i obsługi wielu stron (Virtual Hosts), stworzymy dedykowany katalog.
-
Utwórz katalog dla nowej strony:
sudo mkdir -p /var/www/mojastrona.local/public_html -
Nadaj odpowiednie uprawnienia (zazwyczaj użytkownik to
$USERlubwww-data):sudo chown -R $USER:$USER /var/www/mojastrona.local/public_html sudo chmod -R 755 /var/www/mojastrona.local -
Utwórz prosty plik
index.html:nano /var/www/mojastrona.local/public_html/index.htmlWpisz do środka przykładową treść:
<html> <head> <title>Witaj na mojastrona.local!</title> </head> <body> <h1>Sukces! Wirtualny Host Apache dziala poprawnie!</h1> </body> </html>
Krok 3: Konfiguracja Wirtualnego Hosta (HTTP)
Aby serwer wiedział, że zapytanie o mojastrona.local ma kierować do naszego katalogu, musimy stworzyć plik konfiguracyjny.
-
Utwórz nowy plik konfiguracyjny:
sudo nano /etc/apache2/sites-available/mojastrona.local.confWklej poniższą zawartość:
<VirtualHost *:80> ServerAdmin [email protected] ServerName mojastrona.local ServerAlias www.mojastrona.local DocumentRoot /var/www/mojastrona.local/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> -
Aktywuj nową stronę i przeładuj Apache:
sudo a2ensite mojastrona.local.conf sudo systemctl reload apache2 -
Dodaj wpis do
/etc/hosts(lokalne DNS), aby móc przetestować domenę:sudo nano /etc/hosts # Dodaj linię: 127.0.0.1 mojastrona.local
Krok 4: Konfiguracja HTTPS (Self-Signed Certificate)
Teraz zabezpieczymy naszą stronę. W środowisku produkcyjnym używa się certyfikatów od urzędów (CA) np. Let's Encrypt, ale do testów wystarczy certyfikat podpisany przez nas samych (Self-Signed).
-
Włącz moduł SSL:
sudo a2enmod ssl sudo systemctl restart apache2 -
Wygeneruj certyfikat i klucz prywatny:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/ssl/private/apache-selfsigned.key \ -out /etc/ssl/certs/apache-selfsigned.crt(Wypełnij pytania dowolnymi danymi, najważniejsze to Common Name:
mojastrona.local). -
Skonfiguruj Wirtualnego Hosta dla SSL. Edytuj ponownie plik konfiguracyjny:
sudo nano /etc/apache2/sites-available/mojastrona.local.confDodaj sekcję
<VirtualHost *:443>pod istniejącą sekcją*:80:<VirtualHost *:443> ServerAdmin [email protected] ServerName mojastrona.local ServerAlias www.mojastrona.local DocumentRoot /var/www/mojastrona.local/public_html SSLEngine on SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>opcjonalnie: Możesz dodać przekierowanie z portu 80 na 443 w sekcji VirtualHost 80.
-
Sprawdź konfigurację i przeładuj Apache:
sudo apache2ctl configtest sudo systemctl reload apache2
Weryfikacja
- Otwórz przeglądarkę (lub użyj
curl). - Wejdź na
http://mojastrona.local-> powinieneś zobaczyć swoją stronę. - Wejdź na
https://mojastrona.local-> powinieneś zobaczyć ostrzeżenie o bezpieczeństwie (to normalne przy self-signed) i po zaakceptowaniu swoją stronę.