Zabezpiecz Apache za pomocą certyfikatu Lets Encrypt SSL w systemie CentOS 8
Zabezpieczenie serwera internetowego jest zawsze jednym z kluczowych czynników, które należy wziąć pod uwagę przed uruchomieniem witryny. Certyfikat bezpieczeństwa ma kluczowe znaczenie dla zabezpieczenia ruchu przesyłanego z przeglądarek internetowych do serwerów internetowych, dzięki czemu zainspiruje użytkowników do wymiany danych z Twoją witryną, mając pełną świadomość, że wysyłany ruch jest zabezpieczony.
W większości przypadków certyfikaty bezpieczeństwa są opłacane i odnawiane co roku. Certyfikat Let's Encrypt to bezpłatny, otwarty i zautomatyzowany urząd certyfikacji, którego możesz użyć do szyfrowania swojej witryny. Certyfikat wygasa po każdych 90 dniach i odnawia się automatycznie bez żadnych kosztów.
Zalecana lektura: Jak zabezpieczyć Nginx za pomocą Let’s Encrypt na CentOS 8
W tym artykule pokażemy, jak zainstalować Let's Encrypt Certyfikat za pomocą Certbot dla serwera WWW Apache, a później skonfigurować certyfikat aby odnowić się automatycznie w CentOS 8.
Warunki wstępne
Zanim zaczniesz, upewnij się, że masz przygotowane następujące elementy:
1. Instancja serwera CentOS 8 z zainstalowanym i uruchomionym serwerem internetowym Apache HTTP. Możesz potwierdzić, że Twój serwer WWW Apache działa i działa.
sudo dnf install httpd
sudo systemctl status httpd
2. W pełni kwalifikowana nazwa domeny (FQDN) wskazująca publiczny adres IP Twojego serwera internetowego u Twojego dostawcy usług hostingowych DNS. W tym przewodniku użyjemy linuxtechwhiz.info
wskazującego adres IP serwera 34.67.63.136
.
Krok 1. Zainstaluj Certbota w CentOS 8
Certbot to klient, który automatyzuje instalację certyfikatu bezpieczeństwa. Pobiera certyfikat od Zaszyfrujmy organ i bez większych problemów wdraża go na Twoim serwerze internetowym.
Certbot jest całkowicie darmowy i umożliwi Ci instalację certyfikatu w sposób interaktywny, generując instrukcje na podstawie konfiguracji Twojego serwera WWW.
Przed pobraniem certbota najpierw zainstaluj pakiety niezbędne do konfiguracji połączenia szyfrowanego.
Zaczniemy od zainstalowania repozytorium EPEL, które zapewnia wysokiej jakości dodatkowe pakiety dla systemów opartych na RHEL:
sudo dnf install epel-release
Następnie zainstaluj pakiety mod_ssl i openssl.
sudo dnf install mod_ssl openssl
Po zainstalowaniu wszystkich zależności zainstaluj Certbot i moduł Apache dla Certbota.
sudo dnf install certbot python3-certbot-apache
Polecenie instaluje Certbot, moduł Apache dla Certbot i inne zależności.
Krok 2: Utwórz wirtualnego hosta Apache
Następnym krokiem będzie utworzenie pliku wirtualnego hosta dla naszej domeny – linuxtechwhiz.info
. Zacznij od utworzenia katalogu głównego dokumentu, w którym umieścisz pliki HTML.
sudo mkdir /var/www/linuxtechwhiz.info.conf
Utwórz plik testowy index.html
, jak pokazano.
sudo echo “<h1>Welcome to Apache HTTP server</h1>” > /var/www/linuxtechwhiz.info/index.html
Następnie utwórz plik hosta wirtualnego, jak pokazano.
sudo vim /etc/httpd/conf.d/linuxtechwhiz.info
Załącz konfigurację poniżej.
<VirtualHost *:443>
ServerName linuxtechwhiz.info
ServerAlias www.linuxtechwhiz.info
DocumentRoot /var/www/linuxtechwhiz.info/
<Directory /var/www/linuxtechwhiz.info/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
</VirtualHost>
Zapisz i wyjdź.
Przypisz uprawnienia do katalogu głównego dokumentu, jak pokazano.
sudo chown -R apache:apache /var/www/linuxtechwhiz.info
Aby zmiany zaczęły obowiązywać, uruchom ponownie usługę Apache.
sudo systemctl restart httpd
Krok 3: Zainstaluj certyfikat Let's Encrypt SSL na CentOS 8
Teraz uruchom certbot, jak pokazano, aby rozpocząć instalację certyfikatu Let's Encrypt.
sudo certbot --apache -d domain.com
W naszym przypadku będzie to:
sudo certbot --apache -d linuxtechwhiz.info
Polecenie przeprowadzi Cię przez serię monitów umożliwiających skonfigurowanie Lets Encrypt dla Twojej domeny. Pamiętaj, aby podać swój adres e-mail, zaakceptować Regulamin i określić nazwy domen, z których chcesz korzystać z protokołu HTTPS, który jest zaszyfrowaną wersją protokołu HTTP.
Jeśli wszystko poszło dobrze, na koniec powinieneś otrzymać wiadomość z gratulacjami informującą, że Twoja witryna została zabezpieczona przy użyciu certyfikatu Let's Encrypt. Wyświetlona zostanie również ważność Twojego certyfikatu – zwykle następuje to po 90 dniach od wdrożenia.
Teraz wróć do pliku hosta wirtualnego i dołącz następujące wiersze konfiguracji.
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
Zapisz i wyjdź.
Ostateczna konfiguracja wirtualnego hosta Apache będzie wyglądać mniej więcej tak:
<VirtualHost *:443>
ServerName linuxtechwhiz.info
ServerAlias www.linuxtechwhiz.info
DocumentRoot /var/www/linuxtechwhiz.info/
<Directory /var/www/linuxtechwhiz.info/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
</VirtualHost>
Jeszcze raz uruchom ponownie Apache.
sudo systemctl restart httpd
Krok 4: Weryfikacja certyfikatu Let’s Encrypt SSL
Aby sprawdzić, czy wszystko działa, uruchom przeglądarkę i odwiedź adres IP swojego serwera. Powinieneś teraz zobaczyć symbol kłódki na początku adresu URL.
Aby uzyskać więcej informacji, kliknij symbol kłódki i opcję „Certyfikat” w wyświetlonym menu rozwijanym.
Szczegóły certyfikatu zostaną wyświetlone w następnym wyskakującym oknie.
Możesz także przetestować swój serwer na https://www.ssllabs.com/ssltest/
, a Twoja witryna powinna uzyskać ocenę „A”
, jak pokazano.
Krok 5: Automatyczne odnawianie certyfikatu Let's Encrypt SSL
Let's Encrypt jest ważny tylko przez 90 dni. Zwykle proces odnowienia przeprowadzany jest przez pakiet certbot, który dodaje skrypt odnawiający do katalogu /etc/cron.d. Skrypt uruchamia się dwa razy dziennie i automatycznie odnawia każdy certyfikat w ciągu 30 dni od jego wygaśnięcia.
Aby przetestować proces automatycznego odnawiania, przeprowadź test próbny za pomocą certbota.
sudo /usr/local/bin/certbot-auto renew --dry-run
Jeśli nie napotkano żadnych błędów, oznacza to, że wszystko jest gotowe.
W ten sposób dotarliśmy do końca tego przewodnika. W tym przewodniku pokazaliśmy, jak użyć certbota do zainstalowania i skonfigurowania certyfikatu Let's Encrypt na serwerze internetowym Apache działającym w systemie CentOS 8.