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ę

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ę

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

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:

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ą.

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

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

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