Jak zabezpieczyć Apache za pomocą Let's Encrypt w Debianie 12, 11 lub 10

Zabezpieczenie serwera WWW Apache za pomocą certyfikatu Let's Encrypt ma kluczowe znaczenie dla ochrony Twojej witryny i danych. Ten przewodnik przeprowadzi Cię przez ten proces w Debianie 12 Bookworm, Debianie 11 Bullseye i Debianie 10 Buster. Nacisk położony jest tutaj na wdrożenie solidnych środków bezpieczeństwa przy jednoczesnym uproszczeniu złożoności często związanych z zarządzaniem serwerami.

Kluczowe zalety używania Let's Encrypt z Apache w Debianie:

  • Opłacalne: Let's Encrypt oferuje bezpłatne certyfikaty SSL, dzięki czemu wysoki poziom bezpieczeństwa jest dostępny dla każdego.
  • Automatyczne odnowienia: Funkcje automatyzacji Let's Encrypt upraszczają uzyskiwanie i odnawianie certyfikatów SSL, zmniejszając ryzyko luk w zabezpieczeniach.
  • Rozszerzona ochrona: Certyfikaty SSL firmy Let's Encrypt zapewniają silne szyfrowanie przesyłanych danych, zwiększając ogólne bezpieczeństwo Twojego serwera Apache w Debianie.
  • Szeroka kompatybilność: Większość nowoczesnych przeglądarek internetowych rozpoznaje certyfikaty Let's Encrypt, zapewniając płynną obsługę.
  • Proaktywne środki bezpieczeństwa: Dzięki regularnym aktualizacjom i rygorystycznym zasadom Let's Encrypt stanowi niezawodną linię obrony przed różnymi zagrożeniami cybernetycznymi.

Postępując zgodnie z tym przewodnikiem, dowiesz się, jak zabezpieczyć serwer Apache w Debianie za pomocą Let's Encrypt, podnosząc bezpieczeństwo i niezawodność usług sieciowych. Czekaj na szczegółowe instrukcje dotyczące osiągnięcia tej niezbędnej konfiguracji zabezpieczeń.

Zainstaluj Certbota dla Apache

W tej sekcji skupimy się na instalowaniu Certbota dla Apache w systemie Linux opartym na Debianie. Certbot to potężne narzędzie, które upraszcza uzyskiwanie i konfigurowanie certyfikatów SSL z Let's Encrypt. Działa ramię w ramię z Apache, umożliwiając włączenie protokołu HTTPS na serwerach.

Zaktualizuj repozytoria pakietów Debiana przed instalacją Certbot dla Apache

Przed zainstalowaniem Certbota ważne jest, aby upewnić się, że repozytoria pakietów i istniejące pakiety w systemie Debian są zaktualizowane. Aktualizowanie systemu gwarantuje zainstalowanie najnowszej wersji Certbota i zależności. Wykonaj następujące polecenia, aby zaktualizować repozytoria pakietów i zaktualizować istniejące pakiety:

sudo apt update
sudo apt upgrade

Zainstaluj Certbot i wtyczkę Apache

Teraz, gdy Twój system Debian jest aktualny, następnym krokiem jest instalacja Certbota wraz z wtyczką Apache. Wtyczka Apache jest niezbędna, ponieważ umożliwia Certbotowi interakcję z Apache, automatyzację uzyskiwania i odnawiania certyfikatów oraz konfigurowanie Apache do ich używania. Uruchom następujące polecenie, aby zainstalować zarówno Certbota, jak i wtyczkę Apache:

sudo apt install certbot python3-certbot-apache

Konfigurowanie certyfikatu Apache i Let's Encrypt

W tej sekcji przeprowadzimy Cię przez konfigurację Apache i wygenerowanie certyfikatu Let's Encrypt SSL dla Twojej domeny za pomocą Certbota. Omówimy także zastosowanie różnych opcji poprawiających bezpieczeństwo konfiguracji Twojego serwera.

Konfiguracja Certbota i generowanie certyfikatu SSL na Apache z Debianem

Po zainstalowaniu Certbota i wtyczki Apache następną czynnością jest uruchomienie Certbota w celu wygenerowania certyfikatu SSL dla Twojej domeny. Polecenie zawiera kilka opcji optymalizacji bezpieczeństwa.

Oto zestawienie zastosowanych opcji:

  • --apache: Określa, że ​​używanym serwerem WWW jest Apache.
  • --agree-tos: oznacza, że ​​zgadzasz się z warunkami korzystania z usługi Let's Encrypt.
  • --redirect: konfiguruje stałe przekierowanie 301 z HTTP na HTTPS, zapewniając, że cały ruch jest szyfrowany.
  • --hsts: Dodaje nagłówek Strict-Transport-Security w celu wymuszenia bezpiecznych połączeń.
  • --staple-ocsp: Włącza zszywanie OCSP, zwiększając wydajność negocjacji SSL przy jednoczesnym zachowaniu prywatności użytkownika.
  • --email: To jest adres e-mail, na który będziesz otrzymywać powiadomienia związane z Twoim certyfikatem SSL, takie jak przypomnienia o odnowieniu i alerty bezpieczeństwa.

Zastępować you@example.com z Twoim prawdziwym adresem e-mail i yourdomain.com z nazwą Twojej domeny. Wykonaj następujące polecenie:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d yourdomain.com

Po pomyślnym wykonaniu Certbot wygeneruje certyfikat SSL dla Twojej domeny, skonfiguruje Apache do jego używania i zastosuje określone opcje bezpieczeństwa. Twój serwer będzie teraz bezpieczny, a Twoja witryna będzie dostępna za pośrednictwem protokołu HTTPS.

Alternatywna metoda konfiguracji Certbota z Apache

Dla tych, którzy wolą bardziej ukierunkowane i interaktywne podejście, Certbot zapewnia alternatywną metodę, która wyświetla monit o podanie informacji i opcji konfiguracji. Oto jak korzystać z tej metody:

Uruchom następujące polecenie:

sudo certbot --apache

Certbot zainicjuje sesję interaktywną. Poniżej znajduje się opis komunikatów, które możesz napotkać:

  • Wpisz adres e-mail (używany do pilnych powiadomień o odnowieniu i bezpieczeństwie): Podaj swój adres e-mail. Let's Encrypt użyje tego do komunikowania się o Twoich certyfikatach.
  • Zaakceptuj warunki korzystania z usługi Let's Encrypt: Zostaniesz poproszony o wyrażenie zgody na warunki korzystania z usługi. Wprowadź A, aby wyrazić zgodę.
  • Udostępnij swój e-mail fundacji Electronic Frontier Foundation, aby uzyskać aktualne informacje na temat jej pracy: Jeśli chcesz wesprzeć EFR, wpisz Y, aby wyrazić zgodę. W przeciwnym razie wpisz N dla nr.
  • Dla jakich nazw chcesz aktywować HTTPS: Certbot wyświetli nazwy domen, dla których może wystawiać certyfikaty. Wprowadź liczby odpowiadające Twoim domenom lub pozostaw je puste dla wszystkich.
  • Wybierz odpowiednią akcję: Będziesz mieć możliwość:
    • 1: Spróbuj ponownie zainstalować certyfikat
    • 2: Odnów i wymień certyfikat (limit ~5 na 7 dni)
    • Wybierz opcję odpowiadającą Twoim potrzebom.
  • Wybierz, czy chcesz przekierowywać ruch HTTP do HTTPS: Zostaniesz zapytany, czy chcesz przekierować ruch HTTP do HTTPS. Jest to zalecane w przypadku większości witryn internetowych:
    • 1: Brak przekierowania – nie wprowadzaj dalszych zmian w konfiguracji serwera WWW.
    • 2: Przekieruj – przekieruj wszystkie żądania w celu bezpiecznego dostępu HTTPS.
    • Wybierz opcję 2, aby zapewnić większe bezpieczeństwo.

Po wykonaniu wszystkich monitów i zakończeniu procesu Certbot wyświetli komunikat podobny do wspomnianego, wskazując lokalizację plików certyfikatu i dalsze informacje.

Automatyzacja odnawiania certyfikatu SSL za pomocą Cron

W tej sekcji skonfigurujemy automatyczny proces odnawiania Twoich certyfikatów SSL przy użyciu Cron, wbudowanego harmonogramu zadań w systemach opartych na systemie Linux. Certyfikaty Let's Encrypt SSL mają ważność 90 dni i konieczne jest ich odnowienie przed wygaśnięciem, aby uniknąć przerw w świadczeniu usług. Certbot udostępnia polecenie odnawiania certyfikatów, a my możemy to zadanie zautomatyzować za pomocą Cron.

Próba odnowienia certyfikatu

Przed zautomatyzowaniem procesu odnawiania kluczowe znaczenie ma upewnienie się, że polecenie odnowienia działa zgodnie z oczekiwaniami. Możemy to zrobić wykonując próbę próbną, która symuluje proces odnowienia bez zmiany certyfikatów. Uruchom następujące polecenie, aby zainicjować próbę próbną:

sudo certbot renew --dry-run

Planowanie automatycznego odnawiania certyfikatów

Jeśli próba przebiegnie bez błędów, możemy zaplanować automatyczne odnawianie certyfikatów. Będziemy używać Crona do uruchamiania polecenia odnowienia o określonej godzinie każdego dnia.

Najpierw otwórz plik crontab w trybie edycji, używając następującego polecenia:

sudo crontab -e

Na końcu pliku dodaj następujący wiersz, aby zaplanować codzienną kontrolę odnowienia o 2:30:

30 2 * * * /usr/bin/certbot renew --quiet

The --quiet Opcja zapewnia, że ​​proces odnawiania będzie przebiegał w tle, bez generowania żadnych wyników, chyba że wystąpi błąd.

Po dodaniu tej linii zapisz i zamknij plik. Skonfigurowałeś teraz automatyczny proces odnawiania certyfikatów SSL. Cron będzie codziennie sprawdzał, czy jakieś certyfikaty wymagają odnowienia i odnawia je w razie potrzeby. Dzięki temu Twój serwer Apache zawsze korzysta z ważnych certyfikatów SSL, utrzymując bezpieczne połączenie użytkownika.

Ulepsz konfigurację Apache SSL

W tej sekcji zoptymalizujemy wydajność Twojego serwera Apache, modyfikując jego konfigurację SSL. Obejmuje to skonfigurowanie certyfikatów SSL, włączenie protokołu HTTP/2, wdrożenie protokołu HTTP Strict Transport Security (HSTS) oraz konfigurację protokołów i szyfrów SSL. Ta konfiguracja wymaga modułów Apache mod_ssl, mod_socache_shmcb, mod_rewrite, I mod_headers.

Edytuj plik konfiguracyjny Apache

Aby rozpocząć, musisz uzyskać dostęp do pliku konfiguracyjnego swojej domeny w Apache. Wykonaj następujące polecenie:

sudo nano /etc/apache2/sites-available/your_domain.conf

Spowoduje to otwarcie pliku konfiguracyjnego Twojej domeny w edytorze tekstu o nazwie Nano. Po wejściu wprowadź następujące zmiany w bloku VirtualHost.

Przekieruj HTTP na HTTPS

Najpierw skonfigurujemy regułę przekierowującą cały ruch HTTP do HTTPS, zapewniając bezpieczeństwo wszystkich połączeń z Twoim serwerem. Ta reguła wyklucza żądania do .well-known/acme-challenge/ katalog, który jest używany przez Certbota do walidacji domeny podczas procesu wydawania certyfikatu. Dodaj następującą konfigurację w pliku <VirtualHost *:80> blok:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]

Włącz SSL i określ certyfikaty

Następnie w ramach <VirtualHost *:443> block, włączymy SSL i określimy ścieżki do Twojego certyfikatu SSL i klucza prywatnego:

SSLEngine on
SSLCertificateFile      /path/to/signed_cert_and_intermediate_certs
SSLCertificateKeyFile   /path/to/private_key

Zastępować /path/to/signed_cert_and_intermediate_certs ze ścieżką do pliku certyfikatu SSL oraz /path/to/private_key ze ścieżką do pliku klucza prywatnego.

Włącz HTTP/2

Aby poprawić wydajność, włączymy protokół HTTP/2, jeśli będzie dostępny:

Protocols h2 http/1.1

Wdrażaj HSTS

Dodamy także nagłówek Strict-Transport-Security, aby wymusić bezpieczne połączenia:

Header always set Strict-Transport-Security "max-age=63072000"

Skonfiguruj protokoły i szyfry SSL

Następnie określimy, jakich protokołów i szyfrów SSL należy używać, aby zapewnić wysokie bezpieczeństwo i kompatybilność:

SSLProtocol                        all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite                  ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
SSLHonorCipherOrder    off
SSLSessionTickets            off

Włącz zszywanie OCSP

Na koniec włączymy zszywanie OCSP, funkcję poprawiającą wydajność negocjacji SSL przy jednoczesnym zachowaniu prywatności odwiedzających:

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

Sprawdź i zastosuj zmiany

Gdy skończysz, zapisz i zamknij plik. Koniecznie sprawdź poprawność konfiguracji Apache, aby upewnić się, że nie ma błędów składniowych. Uruchom to polecenie, aby sprawdzić:

sudo apachectl configtest

Jeśli nie ma żadnych problemów, zastosuj zmiany, ponownie ładując Apache:

sudo systemctl restart apache2

Wniosek

W całym tym artykule zagłębiliśmy się w zabezpieczanie Apache za pomocą certyfikatów Let's Encrypt SSL w Debianie 10, 11 i 12. Podkreśliliśmy znaczenie certyfikatów SSL w zapewnianiu bezpiecznej komunikacji pomiędzy serwerami i klientami. Zaczynając od instalacji Certbota, zastanawialiśmy się, jak uzyskać bezpłatny certyfikat SSL od Let's Encrypt. Omówiliśmy także konfigurację Apache pod kątem korzystania z certyfikatu SSL, automatyzację procesu odnawiania za pomocą zadań cron i wzmacnianie bezpieczeństwa poprzez konfigurację Apache.

Ostatecznym zaleceniem jest monitorowanie dzienników i regularne aktualizowanie systemu. Praktyki te zapewnią, że będziesz informowany o potencjalnych problemach i że Twój serwer będzie chroniony przed najnowszymi lukami w zabezpieczeniach.

Joshua James
Chodź za mną
Najnowsze posty autorstwa Joshua James (widzieć wszystko)

Dodaj komentarz