Skonfiguruj Apache z samopodpisanym certyfikatem TLS / SSL w systemie Ubuntu 16.04

SSL i jego następca TLS (Secure Sockets Layer / Transport Layer Security) dodają warstwę szyfrowania między klientem a serwerem. Bez tej technologii dane są wysyłane do serwera w postaci zwykłego tekstu, umożliwiając stronom trzecim odczytanie wszystkich informacji wysyłanych i odbieranych przez serwer.

W tym samouczku nauczysz się, jak utworzyć certyfikat SSL / TLS i aktywować go w Apache 2.4 na Ubuntu 16.04. Zakładam, że Apache jest już skonfigurowany i działa. Jeśli chcesz dowiedzieć się, jak zainstalować stos LAMP, zapoznaj się z tym dokumentem Vultr .

Uwaga

Certyfikaty SSL / TLS są zwykle generowane przez zaufany urząd certyfikacji (urząd certyfikacji). Generując go samodzielnie, będziesz sygnatariuszem, co oznacza, że ​​przeglądarka nie będzie mogła sprawdzić, czy tożsamość certyfikatu powinna być zaufana, i ostrzeże użytkownika. Chociaż można ominąć ten alert, witryny publiczne powinny używać certyfikatu podpisanego przez zaufany urząd certyfikacji. Let's encrypt to urząd certyfikacji, który oferuje certyfikaty za darmo. Możesz dowiedzieć się, jak zainstalować ich certyfikat w Apache i Ubuntu 16.04 tutaj .

W przypadku aplikacji wewnętrznych użycie certyfikatu z podpisem własnym może być prawidłowe, zwłaszcza jeśli nie masz nazwy domeny.


Krok 1: Generowanie certyfikatu

  1. Najpierw stwórzmy miejsce do przechowywania pliku.

    mkdir ~/certificates
    cd ~/certificates
    
  2. Wygeneruj CSR i klucz prywatny.

    openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
    

    Poprosi o informacje dotyczące żądania certyfikatu. Uzupełnij o odpowiednie informacje.

    Country Name (2 letter code) [AU]: US
    State or Province Name (full name) [Some-State]: FL
    Locality Name (eg, city) []: Miami
    Organization Name (eg, company) [My Company]: My Company
    Organizational Unit Name (eg, section) []:
    

    Nazwa pospolita powinna być nazwą domeny lub adresem IP serwera. Wpisz także swój adres e-mail.

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:[email protected]
    
  3. Teraz przenieś certyfikat do folderu konfiguracji Apache.

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. Certyfikat jest gotowy! Następnie przygotujemy Apache do pracy z certyfikatem.

Krok 2: Konfiguracja zapory

  1. Musimy upewnić się, że port TCP 443 jest otwarty. Ten port jest używany w połączeniach SSL zamiast portu 80. W tym samouczku będziemy używać UFW.

  2. Upewnij się, że UFW jest włączony.

    sudo ufw enable
    
  3. Teraz zezwól na predefiniowane ustawienia Apache dla zapory.

    sudo ufw allow 'Apache Full'
    
  4. Po wpisaniu „ sudo ufw status” możesz wyświetlić listę bieżących reguł. Twoja konfiguracja powinna przypominać to:

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. Powinieneś również zezwolić OpenSSH tutaj na przyszłe połączenia.

    sudo ufw allow 'OpenSSH'
    

Krok 3: Konfiguracja hosta wirtualnego Apache

  1. Przejdź do domyślnego katalogu konfiguracji witryny Apache.

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. Ten plik informuje serwer, gdzie szukać certyfikatu SSL. Po usunięciu komentarzy powinna wyglądać następująca konfiguracja.

    <IfModule mod_ssl.c>
      <VirtualHost _default_:443>
       ServerAdmin webmaster@localhost
    
       DocumentRoot /var/www/html
    
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
    
       SSLEngine on
    
       SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
       SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    
       <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
       </FilesMatch>
       <Directory /usr/lib/cgi-bin>
        SSLOptions +StdEnvVars
       </Directory>
    
     </VirtualHost>
    </IfModule>
    
  3. Edytuj ten wiersz:

    ServerAdmin [email protected]
    
  4. Dodaj to poniżej ServerAdminlinii:

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. Teraz edytuj te linie za pomocą naszej lokalizacji certyfikatu:

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. Nasz końcowy plik powinien przypominać to:

    <IfModule mod_ssl.c>
     <VirtualHost _default_:443>
      ServerAdmin [email protected]
      ServerName 203.0.113.122
    
      DocumentRoot /var/www/html
    
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    
      SSLEngine on
    
      SSLCertificateFile    /etc/apache2/ssl/apache.crt
      SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
      <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
      </FilesMatch>
      <Directory /usr/lib/cgi-bin>
       SSLOptions +StdEnvVars
      </Directory>
    
     </VirtualHost>
    </IfModule>
    
  7. Zapisz i zamknij plik.

Krok 4: Włączanie modułu SSL Apache

  1. Włącz moduł SSL, wpisując:

    sudo a2enmod ssl
    
  2. Teraz włącz witrynę, którą właśnie edytowaliśmy:

    sudo a2ensite default-ssl.conf
    
  3. Uruchom ponownie Apache:

    sudo service apache2 restart
    
  4. Przejdźmy do nowej bezpiecznej strony internetowej! Otwórz go w przeglądarce (pamiętaj, aby wpisać https: // ).

    https://YOUR_SERVER_IP
    

Twoja przeglądarka ostrzeże Cię, że certyfikat jest nieważny, zgodnie z naszymi oczekiwaniami. Dzieje się tak, ponieważ certyfikat nie jest podpisany. Postępuj zgodnie z instrukcjami wyświetlanymi przez przeglądarkę, aby przejść do witryny.

Krok 5: Przekieruj cały ruch HTTP na HTTPS (opcjonalnie)

  1. Otwórz domyślny plik wirtualnego hosta Apache:

    nano /etc/apache2/sites-available/000-default.conf
    
  2. Dodaj ten wiersz do <VirtualHost *:80>tagu:

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. Załaduj ponownie konfigurację Apache:

    sudo service apache2 reload
    

Cały ruch w witrynie będzie teraz automatycznie przekierowywany do HTTPS.



Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.