Vanliga frågor

Såhär fungerar letsencrypt hos lopnet

 

 

Letsencrypt är en CA som utfärdar certifikat som har en giltighet på 3 månader.

Vi har implementerat letsencrypts variant där de bekräftar ägarskap av en domän genom att hämta en fil på vår server. Efter aktivering i kundzonen gör vi en del tester och bygger en CSR.

Steg för steg gör vi såhär:

1) Kontrollerar att din domän pekar på vår IP serie.

2) Gör en begäran med curl mot dindomän/.well-known/randomfile

Vi kontrollerar att svaret från servern inte kräver inloggning, inte skickar vidare med 301 eller 302 till en annan url. Vi förväntar oss att servern svarar 404, filen ska inte finnas. Du kan själv testa detta med hjälp av curl.

curl -I http://dindomän/.well-known/$RANDOM

HTTP/1.1 404 Not Found
Date: Mon, 23 Apr 2018 06:32:34 GMT
Server: Apache/2.4.29
Content-Type: text/html; charset=iso-8859-1

3) Sen för vi en likadan begäran mot www.dindomän/.well-known/randomfile, och sen repeterar vi för alla alias domänen har också, så det kommer ett certifikat per domänalias som genomgår samma kontroll som huvuddomänen.

Utifrån resultatet på testerna ovan genererar vi en privat och offentlig nyckel och bygger en CSR.

En CSR- eller certifikatsigneringsbegäran är ett block med kodad text som ges till ett CA när man ansöker om ett SSL-certifikat. Den innehåller information som kommer att ingå i certifikatet, t.ex. commonname (värdnamn), SAN “Subject Alternative Names”. Den innehåller också den offentliga nyckeln som kommer att ingå i certifikatet.

Vi skickar sedan domänens CSR till letsencrypt och får tillbaka en utmaning, vi ska skapa en fil med ett specifikt namn och innehåll på din domän.

 

howitworks_authorization.png

Vi skapar filen och får din domän bekräftad hos letsencrypt, de utfärdar då ett certifikat för de SAN vi angav i CSR och med en giltighetstid på tre månader.

Vi får då ett certifikat vi kan använda tillsammans med den privata nyckel vi har sparat undan. Vi skickar dig ett mail nu och berättar hur det gick att utfärda certifikat. Vi ber sen våra servrar att använda sig av ditt nya certifikat, vilket normalt sker inom en timme.

Vanliga hinder

Vanligt förekommande är att man får ett 301 eller 302 svar på då kan man lägga in denna kod i .htaccess: 

# Letsencrypt verifiering
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^.well-known(.*)$ - [L,NC]
</IfModule>

Vi har också sett vissa mer avancerade rewrites, då har denna regel behövts tidigt för att få igenom valideringar

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^\.well-known/.+ - [END]

ErrorDocument

ErrorDocument 404 /notfound.html

Det gör att regeln för .well-known inte biter när filen inte hittas och det blir 301 i stället för 404. Så med hjälp av ett till undantag för notfound i redirecten till www verkar det funka:

RewriteCond %{HTTP_HOST} ^dindomän\.se [NC]
RewriteCond %{REQUEST_URI} !^/notfound.html
RewriteRule ^(.*) http://www.dindomän.se/$1 [R=301,L]

Officiella regler

Läs letsencrypts egna förklaring.