Jak zainstalować Certyfikat Let's Encrypt SSL, aby zabezpieczyć Apache na RHEL/CENTOS 7/6

Jak zainstalować Certyfikat Let's Encrypt SSL, aby zabezpieczyć Apache na RHEL/CENTOS 7/6

Rozszerzanie ostatniego samouczka Let's Encrypt dotyczących bezpłatnych certyfikatów SSL/TLS, w tym artykule zademonstrujemy, jak uzyskać i zainstalować bezpłatne certyfikaty SSL/TLS wydane przez Zaszypujmy Urząd Świadectwa Do Apache Serwer WWW Centos/Rhel 7/6 a także dystrybucje Fedory.

Jeśli chcesz zainstalować, zaszypuj Let APACHE na Debian i Ubuntu, postępuj zgodnie z tym przewodnikiem poniżej:

Skonfiguruj, zaszyfrowajmy, aby zabezpieczyć Apache na Debian i Ubuntu

Testowanie przykładowego środowiska
Instaluj pozwala szyfrować Apache na Centos i Rhel

Wymagania

  1. Zarejestrowana nazwa domeny z ważną A Dokumenty, aby wrócić do publicznego adresu IP twojego serwera.
  2. Serwer Apache zainstalowany z włączonym modułem SSL i wirtualnym hosting.

Krok 1: Zainstaluj Apache Web Server

1. Jeśli nie jest jeszcze zainstalowany, demon HTTPD można zainstalować, wydając poniższe polecenie:

# Yum Instal HTTPD 

2. Aby oprogramowanie zaszyfrować Let z Apache, upewnij się, że moduł SSL/TLS jest zainstalowany, wydając poniższe polecenie:

# yum -y instaluj mod_ssl 

3. Na koniec uruchom serwer Apache z następującym poleceniem:

# Systemctl start httpd.Service [na RHEL/CENTOS 7] # Service Httpd Start [na RHEL/CENTOS 6] 

Krok 2: Zainstaluj Let's Encrypt SSL Certificate

4. Najprostsza metoda instalacji Zaszypujmy Kloning jest przez klonowanie repozytorium GitHub w systemie plików. Aby zainstalować GIT w systemie, musisz włączyć repozytoria EPEL za pomocą następującego polecenia.

# mniam instaluj epel-uwalnianie 

5. Po dodaniu repozytorium EPEL w systemie, śmiało instaluj klienta GIT, uruchamiając poniższe polecenie:

# mniam instaluj git 

6. Teraz, po zainstalowaniu wszystkich wymaganych zależności, aby poradzić sobie z Let's Encrypt, przejdź do /usr/lokalny/ Directory i zacznij ciągnąć Let's Encrypt Form z oficjalnym repozytorium GitHub za pomocą następującego polecenia:

# cd/usr/local/ # git klon https: // github.com/LetsEncrypt/LetsEncrypt 

Krok 3: Uzyskaj bezpłatny certyfikat SSL Let's Encrypt SSL dla Apache

7. Proces uzyskiwania bezpłatnego certyfikatu zaszyfrowania Let za Apache jest zautomatyzowany Centos/Rhel Dzięki wtyczce Apache.

Biegnijmy Zaszypujmy Polecenie skryptu w celu uzyskania certyfikatu SSL. Przejdź do katalogu instalacji Let's Encrypt /usr/local/letsEncrypt i uruchom Letsecrrypt-Auto polecenie, dostarczając --Apache opcja i -D flaga dla każdej subdomeny, której potrzebujesz certyfikat.

# cd/usr/local/letsencrypt # ./LetsEncrypt -Auto --apache -d Your_domain.tld 
Utwórz pozwala zaszyfrować certyfikat SSL dla Apache

8. Podaj adres e -mail, który będzie używany przez Let's Encrypt w celu odzyskania utraconego klucza lub w celu pilnych powiadomień i naciśnij Wchodzić kontynuować.

Dodaj adres e -mail do zaszyfrowania Lets

9. Zgadzam się na warunki licencji, uderzając w klawisz Enter.

Zgadzam się, zaszyfrowaj licencję

10. NA Centos/Rhel, Domyślnie serwer Apache nie używa koncepcji oddzielania katalogów dla hostów włączonych od dostępnych (nieaktywnych) hostów jako Debian Dystrybucja oparta na.

Również hosting wirtualny jest domyślnie wyłączony. Instrukcja Apache, która określa nazwę serwera (Nazwa serwera) Nie jest obecny w pliku konfiguracyjnym SSL.

Aby aktywować tę dyrektywę, Szyfrujmy, aby wybrać wirtualny host. Ponieważ nie znajduje dostępnego vhost, wybierz SSL.conf plik do automatycznie modyfikowany przez Let's Encrypt Client i naciśnij Wchodzić kontynuować.

Aktywna dyrektywa VirtualHost i wybierz mod_ssl

11. Następnie wybierz Łatwy metoda Http żądania i naciśnij Wchodzić ruszać naprzód.

Zezwalaj na łatwe żądania HTTP

12. Wreszcie, jeśli wszystko poszło gładko, na ekranie powinien być wyświetlany komunikat gratulacyjny. Naciskać Wchodzić Aby zwolnić podpowiedź.

Pozwól, aby zaszyfrować włączoną w domenie

Otóż ​​to! Z powodzeniem wydałeś SSL/TLS Certyfikat Twojej domeny. Teraz możesz zacząć przeglądać swoją witrynę za pomocą Https protokół.

Krok 4: Test Free Let's Encrypt Szyfrowanie w domenie

13. Aby przetestować prostość Twojej domeny SSL/TLS UBRY, odwiedź poniższy link i przetestuj certyfikat na swojej domenie.

https: // www.ssllabs.COM/SSLTEST/Analizuj.html 
Weryfika

14. Jeśli otrzymasz serię raportów dotyczących podatności na domenę w przeprowadzonych testach, musisz pilnie naprawić te otwory bezpieczeństwa.

Ogólna ocena C klasa sprawia, że ​​Twoja domena jest bardzo niepewna. Aby rozwiązać te problemy bezpieczeństwa, otwórz plik konfiguracyjny Apache SSL i dokonaj następujących zmian:

# vi/etc/httpd/conf.D/SSL.conf 

Szukaj linii z Sslprotocol Instrukcja i dodaj -SSLV3 Na końcu linii.

Napraw konfigurację Apache SSL

Wejdź głębiej w pliku, przeszukaj i skomentuj wiersz SSLCIPHERSUITE umieszczając # Przed nim i dodaj następujące treści w tym wierszu:

SSLCIPHERSUITE ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES256-GCMM-SHA384: DHE-RSA-AES128-GCMMSHMASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHASHA256 : Dhe-DSS-AES128-GCM-SHA256: KEDH+AESGCM: ecdhe-rsa-aes128-sha256: ecdhe-ecdsa-aes128-sha256: ecdhe-rsa-aes128-sha: ecdHe-ecdSa-aes128 -Aes256-sha384: ecdhe-ecdsa-aes256-sha384: ecdhe-rsa-aes256-sha: ecdhe-ecdsa-aes256-sha: dhe-rsa-aes128-sha256: dhe-rsa-aes128-sha: dhees-aes128 -Sha256: dhe-rsa-aes256-sha256: dhe-dss-aes256-sha: dhe-rsa-aes256-sha: aes128-gcm-sha256: AES256-GCM-SHA384: AES128-SHA256: AES256-SHA256: AES1286: AES256-SHA : AES256-SHA: AES: CAMELLIA: DES-CBC3-SHA:!anull:!Enall:!EKSPORT:!Des:!RC4:!MD5:!PSK:!Aecdh:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA sslhonorcipherorder na Ssloptions +StricTrequire 
Skonfiguruj konfigurację SSL

15. Po dokonaniu wszystkich powyższych zmian, zapisz i zamknij plik, a następnie uruchom ponownie demon Apache, aby zastosować zmiany.

# Systemctl restart httpd.Service [na RHEL/CENTOS 7] # Service HTTPD Restart [na RHEL/CENTOS 6] 

16. Teraz ponownie testuje status szyfrowania domeny, odwiedzając ten sam link jak powyżej. Aby wykonać ponowne kliknięcie linku do Clear Cache ze strony internetowej.

https: // www.ssllabs.COM/SSLTEST/Analizuj.html 
Test pozwala zaszyfrować certyfikat SSL na stronie internetowej

Teraz powinieneś dostać zajęcia A Ogólna ocena, co oznacza, że ​​twoja domena jest wysoce zabezpieczona.

Krok 4: Auto Renew Let's Encrypt Certicipt on Apache

17. Ta wersja beta Let's Encrypt Software wypuszcza certyfikaty z datą ważności 90 dni. Aby więc odnowić certyfikat SSL, musisz wykonać Letsecrrypt-Auto Poleć ponownie przed datą ważności, z tymi samymi opcjami i flagami używanymi do uzyskania początkowego certyfikatu.

Przykład, w jaki sposób ręcznie odnowić certyfikat, przedstawiono poniżej.

# cd/usr/local/letsencrypt # ./LetsEncrypt-Auto certonly --apache--Renew-By-Default -D Your_domain.tld 

18. Aby zautomatyzować ten proces, utwórz następujący skrypt Bash dostarczony przez Github Erikaheidi, w /usr/lokalny/bin/ katalog z następującą treścią. (Skrypt jest nieco zmodyfikowany, aby odzwierciedlić nasz katalog instalacyjny LetsEncrypt).

# vi/usr/local/bin/le-renew-centos 

Dodaj następującą zawartość do LE-RENEW-CENTOS plik:

!/bin/bash domain = 1 $ le_path = "/usr/local/letsEncrypt" le_conf = "/etc/limsecrypt" exp_limit = 30; get_domain_list () certDomain = 1 $ config_file = "$ le_conf/odnowienie/$ certyfikat.conf ”, jeśli [ ! -f $ config_file]; następnie echo „[błąd] plik konfiguracyjny dla certyfikatu $ certyfikat nie został znaleziony.„Wyjdź 1; Fi Domeny = $ (grep-w trybie dopasowania --Perl-regex” (?<=domains \= ).*" "$config_file") last_char=$(echo "$domains" | awk 'print substr($0,length,1)') if [ "$last_char" = "," ]; then domains=$(echo "$domains" |awk 'print substr($0, 1, length-1)') fi echo $domains;  if [ -z "$domain" ] ; then echo "[ERROR] you must provide the domain name for the certificate renewal." exit 1; fi cert_file="/etc/letsencrypt/live/$domain/fullchain.pem" if [ ! -f $cert_file ]; then echo "[ERROR] certificate file not found for domain $domain." exit 1; fi exp=$(date -d "'openssl x509 -in $cert_file -text -noout|grep "Not After"|cut -c 25-'" +%s) datenow=$(date -d "now" +%s) days_exp=$(echo \( $exp - $datenow \) / 86400 |bc) echo "Checking expiration date for $domain… " if [ "$days_exp" -gt "$exp_limit" ] ; then echo "The certificate is up to date, no need for renewal ($days_exp days left)." exit 0; else echo "The certificate for $domain is about to expire soon. Starting renewal request… " domain_list=$( get_domain_list $domain ) "$le_path"/letsencrypt-auto certonly --apache --renew-by-default --domains "$domain_list" echo "Restarting Apache… " /usr/bin/systemctl restart httpd echo "Renewal process finished for domain $domain" exit 0; fi 

19. Uprawnienia do wykonania skryptu, zainstaluj pne pakować i uruchom skrypt, aby go przetestować. Użyj nazwy domeny jako parametru pozycyjnego dla skryptu. Wydaj poniższe polecenia, aby wykonać ten krok:

# yum instaluj bc # chmod +x/usr/local/bin/le-renew-centos #/usr/local/bin/le-renew-centos your_domain.tld 

20. Wreszcie, za pomocą planowania Linux, dodaj nowe zadanie CRON, aby uruchomić skrypt co dwa miesiące, zapewniając, że Twój certyfikat zostanie zaktualizowany przed datą ważności.

# crontab -e 

Dodaj następujący wiersz na dole pliku.

0 1 1 */2 */usr/local/bin/le-renew-centos your_domain.tld >>/var/log/your_domain.TLD-RENEW.Log 2> i 1 

Otóż ​​to! Twój serwer Apache działający na górze Centos/Rhel System obsługuje teraz treść SSL za pomocą bezpłatnego certyfikatu Let's Encrypt SSL.