• Home
  • /
  • AWS
  • /
  • S1E3 instalacja nginx na serwerze aws t1.micro

S1E3 instalacja nginx na serwerze aws t1.micro

Ten artykuł zawiera informacje o:

* Poprawnej instalacji nginx,
* Podpięciu domeny pod zainstalowany nginx
* Instalacji certyfikatu ssl od let's encrypt przez certbota dla twojej domeny
* Sprawdzeniu poprawności certyfikatu ssl dla podpiętej domeny

Przed przystąpieniem do instalacji powinieneś wykonać kroki z mojego poradnika lub posiadać:

S1E1: Stworzenie i zabezpieczenie darmowego konta w aws
S1E2: Stworzenie i zabezpieczenie darmowego serwera vps w aws 

1. Zmiana Hostname dla serwera

Pierwszym krokiem będzie zmiana hostname dla serwera, tak żebyś się nie mylił do jakiego serwera jesteś podłączony, dla przypomnienia wszystkie komendy będą wykonywane w dystrybucji linuxa : debian 10. Połącz się z swoim vps przez ssh i wpisz komendę:

sudo hostname Jenkins

Po restarcie połącznia powinieneś mieć zmienioną nazwę z nr ip na nazwę

Widok zmienionego hostname

Jeśli pojawi Ci się błąd unable to resolve host jenkins: Name or service not known, otwórz plik etc/hosts

sudo vim etc/hosts

w otwartym pliku dodaj podkreśloną linię

Dodawanie hostname

2. Instalacja oraz konfiguracja nginx

Nginx posłuży nam za reverse proxy, czyli serwer który będzie obsługiwał przychodzący ruch, skonfigurujemy do niego domenę jenkins.com.pl oraz darmowy ssl lets encrypt.  

Na początku wykonaj komendy aktualizujące, oprogramowanie oraz system:

sudo apt update
sudo apt upgrade

Następnie  instalacja samego nginx komendą:

sudo apt install nginx

Jeśli wyszko przebiegło pomyślnie nie powinieneś mieć żadnych komunikatów o błędzie, teraz wejdź przeglądarką na puliczny adress ip twojego serwera w moim przypadku to: http://3.72.78.141/

Powinieneś zobaczyć ekran nginx na którym jest napisane że działa poprawnie

Wstępnie zainstalowany nginx bez ssl

3. Przekierowanie domeny Jenkins.com.pl na serwer vps

Domenę która będzie kierować na mojego Jenkinsa kupiłem w seohost.pl, mają obecnie najlepsze ceny na rynku polskich domen, w panelu seohost wybieram przekierowanie domeny na ip:

Przekierowanie domeny na adres ip vps w aws

Jeśli używasz innego rejestratora domeny, to będziesz musiał ustawić rekord A na ip twojego serwera.

Za pomocą rekordu A określamy adres IP serwera docelowego, na który ma wskazywać domena.

Teraz trzeba odczekać na propagację zmian, zwykle trwa to kilka godzin. Ja sprawdziłem i po 10 godzinach, domena Jenkins.com.pl kierowała na moje ip, można ten proces przyśpieszyć, ustawiając krótszy ttl w sowich ustawieniach DNS.

4. Instalacja certbota i konfiguracja ssl dla serwera nginx i domeny

Nie będziesz instalował i konfigurował firewalla na debianie, zrobiłeś to podczas konfiguracji serwera na aws. Jeśli posiadasz inny vps (nie w amazonie) i nie masz skonfigurowanego firewalla, będziesz musiał wykonać następujące polecenia w termianlu: (dla aws można je pominąć):

Instalacja pakietu ufw:

sudo apt install ufw

Otwarcie portów w firewall dla http(80), https(443) oraz ssh(22):

sudo ufw allow http
sudo ufw allow https 
sudo ufw allow ssh

Teraz włącz ufw jeśli wcześniej był wyłączony:

sudo ufw enable

Na końcu sprawdź czy UFW jest poprawnie skonfigurowany komendą:

sudo ufw status 

5.Instalacja snapd

Snapd jest managerem pakietów utrzymywanym przez developerów ubuntu. Certbot potrzebny do zainstalowania i odnawiania darmowego ssl od let’s encrypt jest snap-em (self-contained application and dependencies) dlatego w pierwszej kolejności musisz zainstalować snapd komendą:

sudo apt install snapd
sudo snap install core
sudo snap refresh core

Po zainstalowaniu managera pakietów snapd zainstaluj certbota poleceniem:

sudo snap install --classic certbot

Stwórz skrót (symlinka) dla folderu certbota potrzebnego do poprawnego działania:

sudo ln -s /snap/bin/certbot /usr/bin/certbot

6.Tworzenie nowego darmowego certyfikatu ssl przy wykorzystaniu certbota:

Do stworzenia certyfikatu dla swojej domeny wykorzystasz plugin nginx dla certbota, plugin automatyzuje dużą część pracy którą musiałbyś wykonać sam np. edytuje plik konfiguracyjny nginx i robi przekierowanie http na https.

Stwórz certyfikat za pomocą komendy:

sudo certbot –nginx

Podczas instalacji będziesz musiał odpowiedzieć na kilka pytań, będziesz musiał podać adres email dla certyfikatu, zgodzić się na warunki użytkowania oraz podać nazwy domeny z www i bez www oddzielone spacją lub kropką.

Widok konsoli podczas dodawania certyfikatu let’s encrypt

7. Testowanie jakości połączenia https

Wejdź na stronę https://www.ssllabs.com/ssltest/ i wpisz swoją nazwę domeny, jeśli otrzymasz ocenę A lub wyżej jest ok

Widok poprawnie skonfigurowanego certyfikatu ssl

Jeśli ocena twojej domeny jest poniżej A, może być to spowodowane używaniem starszych wersji protokołów, prawidłowo powinieneś mieć tylko włączone wersje 1.3 oraz 1.2

Widok prawidłowych wersji TLS

Starsze wersje możesz wyłączyć w konfiguracji nginx

Gotowe, posiadasz darmowy, zabezpieczony serwer pod swoje nowe aplikacje, ja zainstaluje na nim Jenkinsa opisałem to w kolejnym poradniku

Dodaj komentarz