v5.dk logo
Kom ind og besøg vores Discord Chat-community
Bliv medlem her eller læs mere om Discord her
Få adgang til alt på hele v5.dk
- bliv Premium-medlem for kun 39,95 kr.

Mere info Køb nu

Premium på v5.dk
v5.dk logo  v5.dk e-learning
Log på med Facebook
  • Log ind på v5.dk
  • Opret bruger
  • Log ind
  • v5.dk Premium
  • v5.dk Premium
  • Hvad siger vores kunder?
  • E-læring for begyndere
  • icon for WordPress 4 e-learning WordPress 4
  • icon for Office 365 e-learning Office 365
  • icon for Microsoft Word e-learning Microsoft Word
  • Bloggen for alle
  • E-læring for nørder
  • icon for PHP-programmering e-learning PHP-programmering
  • icon for iOS Programmering e-learning iOS Programmering
  • icon for Linux Server e-learning Linux Server
  • Bloggen for nørder
  • Arkiverede videoer
  • Fællesskab
  • Forum
  • Idéer og ønsker
  • Markedspladsen
  • v5.dk Premium
  • Gratis webhotel
  • Cloud-servere
  • Om v5.dk
  • Søg på v5.dk
  • Om v5.dk ApS
    • Om virksomheden
    • RSS-feeds og tjenester
    • Driftsmeddelelser
    • Presse-kit
    • Ledige jobs
    • Social Netværk
      • Facebook
      • Twitter
      • Instagram
    • Alt det andet
      • Forretningsbetingelser
      • Ophavsret og Copyright
  • Kontakt kundeservice
  • FAQ og Hjælp
    • Premium og abb.
    • Videoer og Afspiller
    • Forum og Points
    • Cloud-servers
  • Partner/Virksomhed
  • Partner-kanal
v5.dk logo mobile
  • Menu
  • Opret bruger

Opsætning af SSL-certifikat (Lets Encrypt) i vores nginx-webserver
I denne video kigger vi på den gratis SSL-udbyder Lets Encrypt og hvordan du kan opsætte gratis https/SSL på din linux-server

Opsætning af SSL-certifikat (Lets Encrypt) i vores nginx-webserver
  1. v5.dk
  2. e-learning for nørder
  3. Linux Server
  4. Linux som web-server med PHP og MySQL
  5. Opsætning af SSL-certifikat (Lets Encrypt) i vores nginx-webserver

Bliv medlem og se videoen
Problemer med afspilning?

Tweet
Forrige afsnit
Profile picture
Hej gæst få adgang til denne video: Opret bruger eller log på via Facebook
  • #Linux
  • #Ubuntu Linux
  • #Apache
  • #PHP
  • #phpMyAdmin
  • #MySQL
  • #LAMP
  • #LEMP
  • #SSL
  • #LetsEncrypt

Sådan sikres din nginx med Let's Encrypt

Introduktion

Let's Encrypt er en ny certificerings-udbyder (CA) der både gør det nemt at genere og installere et TLS/SSL-certifikat. Men vigtigst af alt - Let's Encrypt gør det også gratis.

Let's Encrypt er et nyt projekt der er skabt af en række store virksomheder som bl.a. Google, Facebook, Mozilla, Cisco, HP mv. med det formål at gøre Internettet mere sikkert. Med et SSL-certifikat kan du i stedet for den klassiske http:// tilbyde din brugere en krypteret og mere sikker https://.

Let's Encrypt består af en simpel software-klient som automatisere den tidligere lidt mere langhårede process. Det betyder at det nu både er nemmere og gratis at få krypteret trafikken mellem din server og dine besøgende. 

Let's Encrypt har en fuld automatiseret process som pt. kun virker på Apache-webserveren, da vi kører Nginx er der derfor stadig et par enkelte ting, vi manuelt skal gøre - og som jeg vil gennemgå trin-for-trin i denne video.

I denne trin-for-trin videoguide vil vi vise dig, hvordan du bruger Let's Encrypt til at få et gratis SSL-certifikat og hvordan du kan bruge dette sammen med nginx på vores Ubuntu Cloud-server. Vi vil også vise dig, hvordan du automatisk kan forny dit SSL-certifikat vha. et cronjob.

Hvis du benytter en anden webserver end nginx, skal du blot følge web-serverens dokumentation for at bruge certifikatet, som du generer i denne video, det kunne f.eks. være din NAS-boks, din Plex Streaming-server eller måske din webmail-klient.

Så kort fortalt: I denne video kigger vi på den gratis SSL-udbyder Lets Encrypt og hvordan du kan opsætte dit nye gratis https/SSL-certifikat på nginx.

Forberedelse til denne video

Før du går i gang med denne videoguide, er der et par ting som er nødvendige at have styr på:

1. I denne video er vi logget på som root, husk at bruge sudo foran dine kommandoer, hvis du ikke er logget på med root.

2. Du skal have et domæne eller subdomæne som peger på serverens IP-adresse, således du kan tilgå serveren på ex. ditdomæne.dk eller srvXX.cloudnet.dk.

Når du køber en Cloud-server på v5.dk, får du automatisk et domæne der hedder srvXX.cloudnet.dk som kan benyttes.

Har du dit eget domæne ex. danielbahl.dk, skal dette domæne pege på serveren vha. en gyldig DNS-opsætning med en A-record der peger mod serverens IP-adresse.

Kort fortalt: Du skal kunne besøge hjemmesiden på serveren med domæne/hostname f.eks. http://et-domæne/.

Lad os komme igang.

Installation af Let's Encrypt

Step 1: Gør serveren klar

Det første punkt vi skal igennem er meget simpelt. Vi skal installere to værktøjer som skal bruges for at hente Let's Encrypt. Den bedste måde at installere Let's Encrypt på, er ved blot at clone deres officielle GitHub-repository.

Tip: Det forventes at Let's Encrypt bliver en del af apt-get pakke-systemet i nær fremtid. Men ved at clone det officielle repository fra GitHub, er du sikker på altid at have nyeste version.

Start med at opdatere din servers pakke-index med kommandoen:

sudo apt-get update

Installer Git og bc

sudo apt-get -y install git bc

 

Nu hvor de to pakker er installeret, kan vi nemt clone letsencrypt softwaren fra deres officielle respos. på GitHub:

Step 2: Klon fra GitHub

Vi kan nu nemt klone hele Let’s Encrypt repository ned i /opt på vores Linux-server:

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Klargør og generer SSL-cert.

Tilføj til vores server-block i nginx

Når vi genererer et certifikat om lidt, angiver vi vores "webroot"-mappe, altså mappen hvor vores hjemmeside ligger placeret. Det gør vi fordi letsencrypt-klienten placerer en fil i mappe med en nøgle, som bruges til at validere det angivne domæne er korrekt, således vi ikke kan lave certifikater til domæner vi ikke ejer.

For at sikre at letsencrypt-tjenesten kan tilgå denne nye fil, skal vi ind og tilføje en "allow all" i vores nginx server-block konfiguration. Vi åbner derfor default-filen i nano:

sudo nano /etc/nginx/sites-available/default

Her i, som det også bliver vist i videoen, indsætter vi følgende:

location ~ /.well-known {
   allow all;
}

Og reloader vores nginx, så ændringerne kommer til live:

sudo service nginx reload

Så er vores nginx klar til at vi kan genere vores nye SSL-certifikat.

Generer SSL-certifikat

Som vist i videoen skal vi nu generere vores nye certifikat. Det gøres nemt med kommandoen her, som er yderligere forklaret i videoen inkl. hvordan man gør ved flere domæner, domæner med- og uden www foran samt subdomæner:

./letsencrypt-auto certonly -a webroot --webroot-path=/var/www/html -d ditdomain.dk

Bemærk: Er du ikke logget på som root, vil du bedt om at indtaste dit password for at programmet letsencrypt-auto kan opnå de nødvendige rettigheder (sudo).

Processen med at generere certifikatet er yderligere forklaret i videoen.

Generer en stærk DH gruppe

Nu skal vi generere en stærk Diffie-Hellman group. De fleste browsers som Google Chrome, Mozilla Firefox og Microsoft Internet Explorer / Edge har forhøjet deres krav omkring minimum gruppe-størrelse til 1024-bit, vi anbefaler at du laver en 2048-bit DH-gruppe. Det er meget nemt med følgende kommando:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Opsæt vores nye SSL-cert.

Installation i nginx

Nu skal vi have installeret vores nye certifikater i nginx. I videoen gennemgår vi mere detaljeret de enkelte filer i vores SSL-certifikat samt de forskellige kommandoer. Men kort fortalt, vi skal åbne vores default fil i nano-editoren:

sudo nano /etc/nginx/sites-available/default

Her kan vi under vores første server-block rette port 80 til 443:

Udkommenter de to "listen 80" linjer, ved at sætte havelåge (#) foran:

#listen 80 default_server;
#listen [::]:80 default_server;

Og ligeledes, fjern havelåger foran de to "listen 443" linjer:

listen 443 ssl default_server;
listen [::]:443 ssl default_server;

Nedenunder kan du nu indsætte de to SSL-certifikater. De bliver gennemgået mere detaljeret i videoen:

ssl_certificate /etc/letsencrypt/live/ditdomain.dk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ditdomain.dk/privkey.pem;

Herefter opsætter vi, så der kun tillades de mere sikre SSL-protokoller og ciphers, og ikke mindst vores DH-gruppe vi genererede tidligere:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;

Automatisk viderestil http til https

Vi kan ydermere i bunden af vores nginx config-fil tilføje disse 4 linier, for at sikre at alle http:// automatisk bliver omdirigeret til https://

server {
    listen 80;
    server_name ditdomain.dk www.ditdomain.dk;
    return 301 https://$host$request_uri;
}

Lad os få reloadet nginx med de nye ændringer:

sudo service nginx reload

Test dit nye certifikat:

Du kan nu teste det nye SSL-certifikat vha. Qualys SSL Labs Report værktøj på adressen:

https://www.ssllabs.com/ssltest/

Automatisk forny dine SSL-certifikater

Vi gennemgår dette emne nærmere i videoen. Her er et eksempel på et cronjob der kører hver mandag kl. 02.30 om natten, og opdaterer/fornyer dine SSL-certifikater:

Kør følgende kommando:
sudo crontab -e

Og indsæt følgende:
30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/letsencrypt-renew.log
35 2 * * 1 /etc/init.d/nginx reload

Hold din Let's Encrypt klient opdateret

Når der kommer nye opdateringer til Let's Encrypt klienten er det heldigvis super nemt at hente den nyeste version fra git. Det gøres blot ved at køre kommandoen git pull inde fra /opt/letsencrypt-mappen:

cd /opt/letsencrypt
sudo git pull

God fornøjelse med denne trin-for-trin videoguide fra v5.dk.

Forum-emner om Linux

Emne Svar Løst
Avatar for annatjoernelundNogen der arbejder med Raspberry Pi som PLC.....så vil jeg gerne sparre lidt med jer.......
Linux | @annatjoernelund
05
Avatar for SynnoveLinux Server
Linux | @Synnove
715
Avatar for HrCalmar#!/usr/bin/php - PHP
Linux | @HrCalmar
4
Avatar for HrCalmarsudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
Linux | @HrCalmar
4
Avatar for pstoFejl ved Cronjobs
Linux | @psto
2
Avatar for TaxickPublic Key + Windows + Centos 7.2
Linux | @Taxick
10
Avatar for PalleAdgang til ikke redelegeret domæne på V5-Cloudserver
Linux | @Palle
3
Avatar for Taxick{CentOS 7 - FirewallD] Åben SSH for fast IP ellers block
Linux | @Taxick
7

Download materialer

Du skal være Premium før du kan downloade materialer til denne video!

Lektion status



Denne lektion kræver Premium!
Læs mere her

Dine personlige noter til denne lektion

Denne funktion er kun tilgængelig for Premium-medlemmer. Læs mere her

Episode
Installer og opsæt Apache, PHP, MySQL og phpmyadmin
Installer og opsæt nginx med PHP7 og MySQL
Opsætning af SSL-certifikat (Lets Encrypt) i vores nginx-webserver
Har du et spørgsmål om Linux?

Få svar på dine spørgsmål om f.eks. Linux eller andre IT- og teknologi relaterede emner. Vores forum er gratis, og giver dig mulighed for at oprette og svare spørgsmål.

Nyt spørgsmål Gå til forum
v5.dk

Du kan også følge os på Twitter og Instagram

Bygget med af v5.dk
© Copyright 2006-2023 • Forretningsbetingelser • Copyright • Persondata- og Cookiepolitik
v5.dk ApS - Åbogade 15 - 8200 Aarhus N - CVR: 36902833
v5.dk logo
Hej, vi hedder v5.dk og vi laver e-learning på dansk

v5.dk er sat i verden for at gøre teknologi tilgængeligt og anvendeligt for både professionelle og almindelige brugere på alle niveauer.

93 200 555
  Skriv til os
v5.dk bruger cookies til at huske dine indstillinger, livechat samt til statistik
 

Alle vores priser er inkl. moms Sikker SSL-beskyttet forbindelse

Dankort og Visa-Dankort  Visa  Mastercard og Mastercard Junior  Maestro

  • Produkter
  • v5.dk Premium
  • Cloud-servers
  • v5.dk
  • Om v5.dk
  • Kunderne siger
  • Kontakt os
  • Presse
  • Stay updated
  • RSS & tjenester
  • Søg på v5.dk
  • Sitemap