Installera nginx och lets encrypt med docker
by
Denna artikeln bygger på att du har docker installerat. På följande länk har jag specificerat hur man går tillväga för att installera docker: Installera Docker.
Den bygger även på en artikel från pattonWebs
Let’s encrypt tillåter skapande av gratis ssl-certifikat för din webbplats. Detta gör sidan säker och får en url som tex https://topweb.se.
Jag börjar med att skapa en mapp där nginx.tmpl filen ska ligga, som nginx använder för att konfigurera varje webbplat, via nginx reverse-proxy. Med en reverse-proxy förstår nginx vad den ska visa för något när man går till en url. Tex i dnsinställningar för ett domän pekar vi till serverns ipaddress. Servern kan ha flera webbplatser och hur vet servern då vilken sida som ska visas? Jo, med hjälp av en reverse-proxy förstår servern det. Alltså www.topweb.se visar en sida och www.topwebtest.se visar en annan sida, fastän dom ligger på samma server och i olika dockerkontaners. Nu är min rootanvändare peter så glöm inte att ändra till din korrekta rootanvändare eller någon annan användare på din Ubuntu-server.
sudo mkdir -pv /home/peter/docker/volumes/proxy/templates/
Gå till templatesmappen och skapa en nginx.tmpl-fil
cd /home/peter/docker/volumes/proxy/templates/
sudo nano nginx.tmpl
Klistra sedan in denna koden: nginx.tmpl
Skapa docker-compose-fil
Börja med att skapa ett eget dockernätverk för nginx där även alla webbplatser kommer ligga, så let’s encrypt känner av när en ny webbplats läggs till och kan skapa certifikat.
docker network create nginx-proxy
Cd’a till docker-mappen som skapades tidigare och skapa en docker-compose.yml-fil
cd /home/peter/docker/
sudo nano docker-compose.yml
Klistra sedan in denna koden för nginx med let’s encrypt: docker-compose.yml
Öppna portar
Sen måste vi även öppna portar i brandväggen.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Kör docker-compose-filen
Sista steget är att köra igång nginx servern och du kör docker-compose.yml genom följande kommando.
sudo docker-compose up
Stanna gärna kvar vid skriften som kommer och starta istället en ny ssh session med servern, om du ska lägga till en webbplats, som vi gör i guidens nästa steg. Detta för att i rutan som kommer kan du följa utskrifter när certifikaten skapas etc.