Poradniki > Jak zabezpieczyć Apache za pomocą Let's Encrypt na Ubuntu 18.04

Jak zabezpieczyć Apache za pomocą Let's Encrypt na Ubuntu 18.04

Opublikowany: 16 stycznia 2020

Apache Security SSL Ubuntu

W tym poradniku pokażemy, jak zabezpieczyć serwer WWW Apache na Ubuntu 18.04 poprzez instalację certyfikatu Secure Sockets Layer (SSL). W dzisiejszych czasach włączenie szyfrowanego połączenia z serwerem sieciowym ma fundamentalne znaczenie, ponieważ pozwala na korzystanie z bezpiecznego protokołu HTTPS dla witryny.

W tym celu zostanie użyty certyfikat wydany przez urząd certyfikacji Let's Encrypt, który wydaje bezpłatne certyfikaty całkowicie zgodnie z wymaganymi standardami bezpieczeństwa. Let's Encrypt upraszcza proces instalacji certyfikatu bezpieczeństwa za pomocą klienta Certbot, aby pomóc mniej doświadczonym użytkownikom zabezpieczyć witrynę internetową.

Najpierw połącz się z serwerem za pośrednictwem połączenia SSH. Jeśli jeszcze tego nie zrobiłeś, zalecamy bezpieczne korzystanie z protokołu SSH zgodnie z naszym przewodnikiem. W przypadku serwera lokalnego przejdź do następnego kroku i otwórz terminal swojego serwera.

Instalacja CertBot

Dodaj repozytorium Certbot:

$ sudo add-apt-repository ppa:certbot/certbot

Zainstaluj Certbot przy użyciu komendy apt:

$ sudo apt install python-certbot-apache

Po zakończeniu instalacji możesz kontynuować z konfiguracją firewalla.

Konfiguracja firewalla

W przypadku zapory na twoim systemie, ustaw ją aby zezwalała na ruch przy pomocy protokołu HTTP i HTTPS do niej.

Podczas korzystania z firewalla wstępnie zainstalowane profile będą dostępne dla Apache. Zobaczmy więc, jak je włączyć.

Aby sprawdzić dostępne profile zainstalowane w zaporze, uruchom polecenie:

$ sudo ufw app list

Lista podobna do poniższej pojawi się na ekranie:

Available applications:

  Apache

  Apache Full

  Apache Secure

  OpenSSH

Aby zezwolić na ruch HTTP (port 80) i HTTPS (port 443) użyj profile “Apache Full”.

Sprawdź informacje o profile wprowadzając:

$ sudo ufw app info "Apache Full"

Następujący opis profilu zostanie wyświetlony:

Profile: Apache Full

Title: Web Server (HTTP,HTTPS)

Description: Apache v2 is the next generation of the omnipresent Apache web

server.
                Ports:

  80,443/tcp

Po sprawdzeniu profilu, ustaw go jako dozwolony:

$ sudo ufw allow in "Apache Full"

Utworzenie certyfikatu SSL

Wystosuj żądanie wygenerowania certyfikatu domeny, którą chcesz chronić, używając wcześniej zainstalowanego Certbota

Zastąp TWOJA_DOMENA.PL nazwą domeny, którą chcesz chronić:

$ sudo certbot --apache -d TWOJA_DOMENA.PL -d www.TWOJA_DOMENA.PL

Fragment –apache nakazuje aplikacji Certbot wykorzystanie pluginu Apache, a parameter -d odwołuje się do nazw domen, dla których wykorzystywany będzie certyfikat.

Następnie należy podać kontaktowy adres e-mail, zaakceptować regulamin usługi i ustawić przekierowanie ruchu ze strony na protokół HTTPS.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.

-------------------------------------------------------------------------------

1: No redirect -  No further changes to the webserver configuration.

2: Redirect -  To redirect all requests to secure HTTPS access. Choose this option fornew websites, or if you're confident your site works on HTTPS. You can undo this

change by editing your web server's configuration.

-------------------------------------------------------------------------------

Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Jeśli na stronie znajduje się już skrypt CMS, należy sprawdzić jego kompatybilność z protokołem HTTPS przed przekierowaniem ruchu.

Wprowadź numer odpowiadający twojej decyzji, a następnie jeśli wszystko wykonaliśmy poprawnie, otrzymamy odpowiedni komunikat.

Potwierdzenie odnowienia certyfikatu

Certyfikaty SSL od Let’s Encrypt są ważne przez 90 dni, po czym muszą zostać odnowione. Certbot daje możliwość automatycznego odnowienia certyfikatu, ale by zapewnić prawidłowe funkcjonowanie certyfikatu, rekomendowanym jest wykonywanie tego ręcznie przy pomocy komendy:

$ sudo certbot renew --dry-run

Jeśli nie otrzymasz komunikatu błędu, wtedy odnowienie zakończyło się sukcesem. W przeciwnym wypadku otrzymasz wiadomość na adres e-mail podany podczas tworzenia certyfikatu, przed datą upłynięcia jego ważności.