Bezpieczne strony internetowe Apache2 HTTPS dzięki Let's Encrypt Free SSL / TLS w systemie Ubuntu 16.04 | 18.04

  • Michael Arnold
  • 0
  • 3734
  • 1048

W naszym poprzednim samouczku pokazaliśmy, jak skonfigurować protokół HTTP Nginx z darmowymi certyfikatami Let's Encrypt SSL / TLS, aby zabezpieczyć swoje witryny…

Ten post pokazuje, jak skonfigurować serwer HTTP Apache2 za pomocą Let's Encrypt, aby można było używać protokołu HTTPS w swoich witrynach…

Let's Encrypt to bezpłatny i otwarty ośrodek certyfikacji (CA) opracowany przez Internet Security Research Group (ISRG)… Jest obsługiwany przez wiele dużych organizacji, w tym Google, Microsoft i kilka innych.

Jeśli chcesz, aby darmowy certyfikat SSL / TLS zabezpieczał ruch w Twojej witrynie przez HTTPS, to jesteś na właściwej stronie… Poniższe kroki pomogą Ci uzyskać i skonfigurować darmowe certyfikaty SSL Let's Encrypt na serwerze HTTP Apache2…

Dzięki tym ustawieniom możesz użyć protokołu HTTPS do zabezpieczenia ruchu w domenie i witrynie…

Ten krótki samouczek pokazuje studentom i nowym użytkownikom, jak sprawić, aby serwer HTTP Apache2 działał z Let's Encrypt CA w systemie Ubuntu 16.04 | 18.04 Serwery LTS…

Kiedy będziesz gotowy, wykonaj poniższe czynności:

Krok 0: Uzyskaj nazwę domeny

Let's Encrypt współpracuje z prawidłową domeną i działającym serwerem, na który wskazuje domena… Ta konfiguracja zakłada, że ​​nazwa Twojej domeny nosi nazwę example.com i wskazuje na Twój serwer o adresie IP 192.168.1.2

Nie zapomnij też się upewnić www CNAME wskazuje na nazwę domeny…. Powinien wyglądać jak coś poniżej:
<

example.com A ==========> 192.168.1.2 www CNAME ==========> example.com 

Krok 1: Zainstaluj serwer HTTP Apache2

Teraz, gdy masz już prawidłową domenę i wskazujesz prawidłowy adres IP serwera, przejdź poniżej do konfigurowania Let's Encrypt… .

Najpierw zainstaluj serwer Apache2… Aby to zrobić, uruchom poniższe polecenia:

sudo apt update sudo apt install apache2

Po zainstalowaniu Apache2 poniższe polecenia mogą być używane do zatrzymywania, uruchamiania i włączania usługi Apache2, aby zawsze uruchamiała się wraz z uruchomieniem serwera.

sudo systemctl stop apache2.service sudo systemctl start apache2.service sudo systemctl włącz apache2.service 

Aby przetestować konfigurację Apache2, otwórz przeglądarkę i przejdź do nazwy hosta serwera lub adresu IP. Powinieneś zobaczyć domyślną stronę testową Apache2, jak pokazano poniżej… .

Kiedy to widzisz, oznacza to, że Apache2 działa zgodnie z oczekiwaniami…

http: // localhost

Krok 2: Skonfiguruj Apache2 w swojej domenie

Teraz, gdy Apache2 jest zainstalowany, przejdź i skonfiguruj go ze swoją domeną, tak aby gdy użytkownicy wpisywali nazwę domeny, serwer Apache2 odpowiadał…

Aby to zrobić, utwórz podstawowy plik HTML w katalogu głównym Apache2 z przykładową zawartością poniżej:

sudo mkdir /var/www/html/example.com

Następnie wewnątrz example.com folder, utwórz plik o nazwie index.html o treści poniżej:

sudo nano /var/www/html/example.com/index.html

Skopiuj poniższą zawartość do pliku i zapisz…

   Strona testowa Example.com   

Sukces! Example.com działa

zapisz plik i zakończ.

Następnie uruchom poniższe polecenia, aby dać użytkownikowi Apache2 dostęp do katalogu…

sudo chown -R www-data: /var/www/html/example.com

Gdy skończysz, utwórz blok serwera Apache2 dla domeny example.com… Aby to zrobić, uruchom poniższe polecenia, aby utworzyć nowy plik konfiguracyjny dla domeny example.com…

Plik zostanie nazwany example.com.conf

sudo nano /etc/apache2/sites-available/example.com.conf

Następnie skopiuj i zapisz poniższą zawartość w pliku i zapisz…

 ServerAdmin [email protected] ServerName example.com ServerAlias ​​www.example.com DocumentRoot /var/www/html/example.com ErrorLog $ APACHE_LOG_DIR /example.com-error.log CustomLog $ APACHE_LOG_DIR /example.com- access.log połączone 

Zapisz plik i zakończ

Teraz plik konfiguracyjny example.com jest tworzony, uruchom poniższe polecenia, aby go włączyć…

sudo a2ensite example.com.conf

Witryna powinna być teraz włączona i gotowa do użycia… ale na razie będzie wyświetlać tylko podstawową zawartość HTML, którą utworzyliśmy powyżej…

Krok 3: Zainstaluj i skonfiguruj Let's Encrypt

Teraz, gdy nasza witryna Apache2 jest włączona i gotowa do użycia, uruchom poniższe polecenia, aby zainstalować i skonfigurować Let's Encrypt, aby zabezpieczyć witrynę Apache2…

Pierwsza instalacja Certbot… Certbot to w pełni funkcjonalne i łatwe w użyciu narzędzie, które może zautomatyzować zadania związane z uzyskiwaniem i odnawianiem certyfikatów SSL Let's Encrypt…

Aby go zainstalować, uruchom poniższe polecenia:

sudo apt install certbot

Po zainstalowaniu Certbota utwórz plik dla Let's Encrypt do wtyczki Webroot, aby zweryfikować naszą domenę w $ webroot-path /. well-known / acme-challenge informator… .

Aby to zrobić, utwórz katalog i daj do niego dostęp Apache2…

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp www-data / var / lib / letsencrypt sudo chmod g + s / var / lib / letsencrypt

Następnie utwórz dobrze znany plik wyzwania z poniższymi konfiguracjami…

sudo nano /etc/apache2/conf-available/well-known.conf

Następnie skopiuj i wklej poniższą zawartość do pliku i zapisz…

Alias ​​/.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"  AllowOverride Brak Opcje MultiViews Indeksy SymLinksIfOwnerMatch IncludesNoExec Metoda wymagania GET POST OPTIONS 

Zapisz plik i zakończ

Krok 4: Uzyskaj bezpłatny certyfikat

W tym momencie Twoja domena powinna wskazywać adres IP Twojego serwera… Serwer HTTP Apache2 został zainstalowany i skonfigurowany, a Certbot jest gotowy do uzyskania certyfikatu…

Przed zażądaniem bezpłatnego certyfikatu otwórz witrynę example.com i włącz konfiguracje i moduły Apache2, uruchamiając poniższe polecenia…

Poniższe polecenia włączają protokół Apache2 SSL, nagłówki, HTTPS / 2 i dobrze znany plik konfiguracyjny, który utworzyliśmy powyżej…

sudo a2enmod ssl sudo a2enmod nagłówki sudo a2enmod http2 sudo a2enconf dobrze znane

Po włączeniu modułów i pliku konfiguracyjnego powyżej, zrestartuj serwer Apache2… Aby to zrobić, uruchom poniższe polecenia

sudo systemctl zrestartuj apache2

W tym momencie wszystko jest ustawione i jesteś gotowy do uzyskania certyfikatu… Aby to zrobić, uruchom poniższe polecenia:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w / var / lib / letsencrypt / -d example.com -d www.example.com

Let's Encrypt powinno się połączyć, zweryfikować domenę i serwer, a następnie zainstalować certyfikat domeny… Jeśli wszystko się powiedzie, powinien pojawić się podobny komunikat jak poniżej:

WAŻNE UWAGI: - Gratulacje! Twój certyfikat i łańcuch zostały zapisane pod adresem: /etc/letsencrypt/live/example.com/fullchain.pem Twój plik klucza został zapisany pod adresem: /etc/letsencrypt/live/example.com/privkey.pem Twój certyfikat wygaśnie w dniu 2018-08-18. Aby w przyszłości uzyskać nową lub ulepszoną wersję tego certyfikatu, po prostu ponownie uruchom certbot. Aby w sposób nieinteraktywny odnowić * wszystkie * swoje certyfikaty, uruchom „certbot renew” - Jeśli podoba Ci się Certbot, rozważ wsparcie naszej pracy poprzez: Darowizna dla ISRG / Let's Encrypt: https://letsencrypt.org/donate Darowizna dla EFF: https://eff.org/donate-le 

W tym momencie masz certyfikat, teraz przejdź i dodaj go do konfiguracji Apache2 dla domeny example.com…

Najpierw wygenerujmy certyfikat wymiany kluczy Diffiego-Hellmana (DH), aby bezpiecznie wymieniać klucze kryptograficzne… Aby to zrobić, uruchom poniższe polecenia, aby wygenerować certyfikat z 2048 bitami…

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Następnie otwórz plik example.com.conf config i spraw, aby wyglądał podobnie do poniższego:

sudo nano /etc/apache2/sites-available/example.com.conf

Skonfiguruj plik tak, aby wyglądał podobnie do poniższego

 NazwaSerwera example.com Aliasy serwera www.example.com Przekierowanie stałe / https://example.com/   ServerName example.com ServerAlias ​​www.example.com DocumentRoot /var/www/html/example.com Protokoły h2 http: /1.1  Przekierowanie stałe / https://example.com/  ErrorLog $ APACHE_LOG_DIR /example.com-error.log CustomLog $ APACHE_LOG_DIR /example.com-access.log połączone SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile / etc / letsencrypt live / example.com / privkey.pem SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem" SSLCipherSuite EECDH + AESGCM: EDH + AESGCM: AES256 + EECDH: AES256 + EDH SSLProt All -SSv1Lv2 -SSLv2 -SSLv2 -SSLv2. 1 SSLCompression wyłączone SSLUseStapling włączone 

Następnie musisz skonfigurować pamięć podręczną serwera dla informacji o stanie protokołu OCSP. Najlepszym miejscem do tego byłby plik konfiguracyjny Apache SSL.

sudo nano /etc/apache2/mods-available/ssl.conf

Ten plik zawiera wszystkie opcje używane przez Apache dla SSL. Dodatkową opcję SSLStaplingCache należy dodać do tego pliku, jak poniżej.

# Ustaw lokalizację pamięci podręcznej zszywania protokołu SSL OCSP SSLStaplingCache shmcb: / tmp / stapling_cache (128000) 

Dyrektywa SSLStaplingCache definiuje lokalizację pamięci podręcznej i wartość rozmiaru pamięci podręcznej OCSP.

Zapisz powyższe zmiany i uruchom ponownie Apache2, aby powyższe ustawienia zaczęły obowiązywać…

sudo systemctl zrestartuj apache2

Aby skonfigurować proces automatycznego odnawiania certyfikatów, dodaj zadanie cron, aby wykonać proces odnawiania.

sudo crontab -e

Następnie dodaj poniższą linię i zapisz.

0 1 * * * / usr / bin / certbot odnowienie &> / dev / null

Zadanie cron podejmie próbę odnowienia 30 dni przed wygaśnięciem

Aby przetestować proces odnawiania, możesz użyć certbot -dry-run przełącznik:

sudo certbot odnowić --dry-run

Otóż ​​to! Gratulacje! Pomyślnie skonfigurowałeś Apache2 dla Let's Encrypt free SSL / TLS na Ubuntu 16.04 | 18.04




Jeszcze bez komentarzy

Zbiór przydatnych informacji o systemie operacyjnym Linux i nowych technologiach
Świeże artykuły, praktyczne wskazówki, szczegółowe recenzje i poradniki. Poczuj się jak w domu w świecie systemu operacyjnego Linux