Zabezpieczmy Apache certyfikatem SSL/TLS.
Po zaimplementowaniu certyfikatu skonfigurowana domena/adres IP będą dostępne przez HTTPS.
Zacznijmy to.
Na wysokim poziomie zrobimy co następuje.
- Skompiluj Apache HTTP 2.4.5 z modułem SSL
- Uzyskaj certyfikat SSL
- Skonfiguruj Apache do obsługi SSL
Spis treści:
Zainstaluj Apache z SSL ze źródła
Aby skonfigurować SSL, Apache HTTP musi być skompilowany z mod_ssl. Użyję CentOS 7 VM z Cyfrowy ocean aby to zademonstrować.
- Zaloguj się do serwera Linux z rootem i pobierz najnowszą wersję Apache
wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz .
Uwaga: możesz Sprawdź tutaj dla najnowszej wersji.
- Rozpakuj poleceniem gunzip
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
- Będziesz mieć nowy folder „httpd-2.4.25”
- Wejdź do środka i wykonaj następujące polecenie konfiguracji
./configure --enable-ssl –-enable-so
Uwaga: Jeśli robisz to na zupełnie nowym serwerze, możesz napotkać problemy związane z APR, PCRE, OpenSSL i możesz zapoznać się z przewodnikiem rozwiązywania problemów.
Upewnij się, że nie otrzymujesz żadnego błędu z powyższego polecenia configure, a następnie musisz zainstalować poleceniem make.
make make install
Jak zwykle upewnij się, że nie ma błędów z powyższych poleceń. Oznacza to, że zainstalowałeś serwer WWW Apache z obsługą SSL.
Uzyskanie certyfikatu SSL
Istnieje wiele sposobów wygenerowania i uzyskania certyfikatu SSL podpisanego przez urząd certyfikacji.
Jeśli chcesz wdrożyć SSL na serwerze sieci intranet, to większość organizacji ma wewnętrzny zespół wystawców certyfikatów, więc musisz się z nimi skontaktować. Ale nadal musisz wygenerować CSR (Żądanie podpisania certyfikatu) i możesz to zrobić za pomocą OpenSSL.
Jeśli jednak chcesz zabezpieczyć adres URL do Internetu, możesz kupić certyfikat od VeriSign, GoDaddy, Namecheap, ZeroSSLitp. lub otrzymaj BEZPŁATNY certyfikat od Szyfrujmy.
Let’s Encrypt to projekt współpracy Linux Foundation, który oferuje BEZPŁATNY certyfikat SSL/TLS. Użyję Let’s Encrypt, aby uzyskać jeden certyfikat dla mojej domeny – Chandan.io
Istnieje wiele sposobów generowania CSR, ale najłatwiejszym, który znalazłem, jest użycie „SSL ZA DARMO” narzędzie online.
Wpisz adres URL, który chcesz zabezpieczyć
Zweryfikuj własność domeny za pomocą jednej z wymienionych metod i pobierz pliki certyfikatów domeny.
Otrzymasz trzy pliki, których użyjemy do skonfigurowania serwera Apache.
Przenieś pobrany plik na serwer WWW. Niedługo będziemy ich potrzebować.
Konfiguracja Apache SSL
Ostatnim krokiem byłoby skonfigurowanie Apache, aby mógł obsługiwać żądanie przez HTTPS.
- Zaloguj się do serwera Apache
- Wykonaj kopię zapasową pliku httpd.conf (domyślna lokalizacja /usr/local/apache2/conf/)
- Otwórz plik w edytorze vi i upewnij się, że moduł mod_ssl i httpd-ssl.conf istnieją i nie są komentowane
LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf
Do konfiguracji szczegółów certyfikatu użyjemy pliku httpd-ssl.conf. Aby upewnić się, że istnieją odpowiednie parametry, musisz wykonać następujące czynności.
Wskazówka: możesz utworzyć nowy folder o nazwie „ssl” i przechowywać w nim wszystkie pliki związane z certyfikatami.
- W razie potrzeby wykonaj kopię zapasową i użyj edytora vi, aby zmodyfikować plik.
SSLCertificateFile "/usr/local/apache2/conf/ssl/certificate.crt" SSLCertificateChainFile "/usr/local/apache2/conf/ssl/ca_bundle.crt" SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/private.key"
Następnie musisz skonfigurować dyrektywę „ServerName”. Zwykle jest to nazwa Twojej domeny/URL
ServerName chandan.io
- Zapisz plik i uruchom ponownie serwer Apache
cd /usr/local/apache2/bin ./apachectl stop ./apachectl start
I na koniec musisz upewnić się, że Twoja domena jest zmapowana na nowo skonfigurowany adres IP serwera WWW. Po zakończeniu spróbuj uzyskać dostęp do swojej domeny za pomocą protokołu HTTPS.
Jak widać, Chandan.io jest dostępny przez https z certyfikatem, który skonfigurowałem.
Powyższe kroki są niezbędne do skonfigurowania certyfikatu SSL i musisz dalej modyfikować SSL, aby wzmocnić i zabezpieczyć, co wyjaśniłem tutaj. Przed uruchomieniem możesz również przetestować SSL/TLS swojego serwera internetowego, aby upewnić się, że nie jest narażony na typowe luki w zabezpieczeniach.
Mam nadzieję, że dzięki temu dowiesz się, jak zaimplementować certyfikat SSL na serwerze Apache Web, aby adres URL był dostępny przez HTTPS.
Podobał Ci się artykuł? Co powiesz na dzielenie się ze światem?