Skip to content

Let’s Encrypt SSL på Ubuntu

Denne guide er skrevet til ubuntu 20.04, 22.04 samt 24.04, og forklarer hvordan du installerer et gratis SSL certifikat via lets encrypt på din linux webserver – I dette tilfælde nginx eller apache. – Alle kommandoer skal køres fra din shell.

Før vi går igang, skal følgende være i orden:

  • Du skal have Ubuntu 20.04, 22.04 eller 24.04 som styresystem samt nginx eller apache som webserver.
  • Du skal bruge sudo foran dine kommandoer, hvis du ikke er logget på med root.
  • Du skal have et domæne eller subdomæne som peger på serverens IP-adresse, således du kan tilgå serveren på ex. example.com eller eller subdomain.example.com
  • VIGTIG NGINX – Tag en backup af dine nginx config filer, som du i dette tilfælde finder her:
    /etc/nginx/sites-enabled

     (De kan også ligge et andet sted)

  • VIGTIG APACHE – Tag en backup af dine apache config filer, som du i dette tilfælde finder her:
    /etc/apache2/sites-enabled

    (De kan også ligge et andet sted)

Lad os komme i gang

1: Connect til din webserver via SSH. Enten som ROOT eller med en bruger som har sudo rettigheder.

Jeg kan varmt anbefale, at du bruger “mobaxterm” som SSH klient. 

2: Opdatere snapd til den nyeste version med denne kommando

				
					sudo snap install core; sudo snap refresh core
				
			

3: Hvis du kører en gammel  version af certbot, skal du afinstallere den først via denne komando.

				
					sudo apt-get remove certbot
				
			

4: Installer nu den nye version af Certbot der bliver udgivet på snap

				
					sudo snap install --classic certbot
				
			

5: Kør nu denne kommando for at sikre, at certbot kommandoen virker efter hensigten

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

Inden du kører certbot! (Nginx)

Inden du kører Certbot, skal du være sikker på, at “server_name” er korrekt sat op – Det vil ca se sådan ud!  I dette tilfælde bruger vi “example.com samt www.example.com” – Yderlige skal “Root” pege på den mappe hvor dine filer ligger. I denne config bruger vi “/var/www/html

				
					server {
    listen 80;
    listen [::]:80;
    # Declare the domain name of the website
    server_name example.com www.example.com;
    # Declare the document root directory
    root  /var/www/html;
    index index.html index.php;
    # Pass PHP files to PHP-FPM listening on /run/php/php7.4-fpm.sock
    location ~ \.php$ {
        try_files $uri =404;
        # Mitigate https://httpoxy.org/ vulnerabilities
        fastcgi_param HTTP_PROXY "";
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}
				
			

Inden du kører certbot! (Apache)

Inden du kører Certbot, skal du være sikker på, at “ServerName” samt “ServerAlias” er korrekt sat op – Det vil ca se sådan ud som vist neden under. – I dette tilfælde bruger vi “example.com – – Yderlige skal “DocumentRoot” pege på den mappe du vil bruge. I denne config bruger vi “/var/www/html

				
					<VirtualHost *:80>
     ServerName example.com
     ServerAlias www.example.com
     DocumentRoot /var/www/html
     <Directory /var/www/html>
          Options Indexes FollowSymLinks
         AllowOverride All
         Require all granted
     </Directory>
     <FilesMatch ".php$"> 
         SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"   
      </FilesMatch>
</VirtualHost>
				
			

Hvis du  bruger Nginx som webserver, læs her:

Hvis du har fulgt guiden indtil nu, kan du nu skrive:

				
					sudo certbot --nginx
				
			

og følge guiden for at installere et ssl certificat til nginx

Hvis du  bruger Apache som webserver, læs her:

Hvis du har fulgt guiden indtil nu, kan du nu skrive:

				
					sudo certbot --apache
				
			

og følg guiden for at installere et ssl certificat til apache

En alternativ måde at gøre det på:

Nginx:

				
					sudo certbot --nginx --redirect -d example.com -d www.example.com -m admin@example.com --agree-tos
				
			

Apache:

				
					sudo certbot --apache --redirect -d example.com -d www.example.com -m admin@example.com --agree-tos
				
			

Hvad betyder det?

  • –nginx eller –apache = Vælger nginx eller apache som web-server
  • –redirect = Videre stiller auto http til -> https
  • -d = Vælger de domæner du vil oprette et SSL certifikat til. I Dette tilfælde: example.com samt www.example.com
  • -m = sætter din mail – Den bliver brugt til at modtage besked fra certbot ang. fornyelse
  • –agree-tos = aceptere TOS (terms of service)

Andre styresystemer / webserver software

Der findes flere guides på certbots hjemmeside! Den viser hvordan du  udsteder SSL certifikater til andre styresystemer samt webserver! De er dog på engesk!

Find dem på denne side: https://certbot.eff.org/

Andre nyttige kommandoer

Skal du bruge SSL certifikater til andet software, kan du udstede en “standalone” certifikat med denne kommando.

				
					sudo certbot certonly --standalone --preferred-challenges http -d server.example.com
				
			

Renew:

Certbot skulle gerne forny dine certifikater automatisk. Hvis du løber ind i problemer, kan du forny dem manuelt.

Det gør du med denne kommando

				
					sudo certbot renew
				
			

Certbot vil nu tjekke alle dine certifikater om det er tid til at forny certifikatet samt forny det hvis muligt.

Du kan også vælge et bestemt certifikat med denne komando

				
					sudo certbot renew --certificat -name example.com
				
			

Force – Renew:

Hvis du ønsker at tvinge opdating af certfikater af en eller alle dine certifikater, kan du bruge følgene kommandoer

				
					sudo certbot renew --force-renew
				
			

Du kan også tvinge certbot til at opdatere et bestemt certifikat med denne kommando

				
					sudo certbot renew --force-renew --cert-name example.com
				
			

Slet et certifikat

Hvis du vil slette et SSL certifikat som er udstedt, kan du bruge denne komando

				
					sudo certbot delete
				
			

Eller du kan bruge denne kommando

				
					sudo certbot delete --cert-name example.com
				
			

Bonus info

Hvis du er i tvivl om hvor certifikat- filerne bliver gemt, er her en liste:

  • /etc/letsencrypt/archive
  • /etc/letsencrypt/live
  • /etc/letsencrypt/renewal

Hvis du skulle have brug for hjælp. Så smid en kommentar

Bedøm dette indlæg:

Hvor nyttigt var dette indlæg?

Vælg din bedømmelse

Gennemsnitlig bedømmelse? 0 / 5. Antal bedømmelser: 0

Ingen bedømmelser endnu! Vær den første til at bedømme dette indlæg.

Del dette indlæg:

Kommentarer:

Comments are closed for this article!

Share to...