Let's Encrypt har släppt en typ av challenge för att verifiera att du verkligen är ägare av den domän som du har skapat ett certifikat för. Denna challenge kräver inte att du använder en webbserver för att verifiera dig, utan den är helt baserad på att du har åtkomst till att skapa pekare för domänen.
Den här guiden visar hur du kan använda GleSYS API för detta.
För Debian och Ubuntu använder du följande kommando:
apt-get install curl xmlstarlet
För CentOS (kräver EPEL) använder du följande kommando:
yum install curl xmlstarlet
Information om EPEL finns här.
cd /etc/ssl/private/
Om katalogen inte finns skapar du den med följande kommando:
mkdir /etc/ssl/private && chmod 700 /etc/ssl/private
Med chmod 700
ovan sätts rättigheter på mappen. I det här fallet ger du ägaren rätt att läsa, skriva och exekvera från den.
letsencrypt
.I bilden nedan kan du se att en API-nyckel, utan några rättigheter, har skapats med ID 0JSmAiYu3l0ZGCNAOa15jWOP7OXKFIidk47RVElQ
. Den är unik för oss och du kommer att få en annan nyckel som du ska använda längre fram i guiden.
När du klickar på Lägg till är förändringarna aktiva omedelbart. Tryck på Stäng när du är färdig.
I fönstret Rättigheter för API-nyckel som öppnas väljer du Tillåten på raden domain. Avsluta med Spara.
echo "export USER=CL12345" > /etc/ssl/private/.glesys-credentials
echo "export KEY=ABCDE12345" >> /etc/ssl/private/.glesys-credentials
CL12345
med identifieraren för det projekt som du har skapat nyckeln för.ABCDE12345
med den KEY som du har genererat. I vårt fall 0JSmAiYu3l0ZGCNAOa15jWOP7OXKFIidk47RVElQ
.wget https://raw.githubusercontent.com/lukas2511/dehydrated/master/dehydrated
wget https://raw.githubusercontent.com/glesys/api-docs/master/BASH/LetsencryptGlesysHook/glesys-dns-01-hook.sh
wget https://raw.githubusercontent.com/glesys/api-docs/master/BASH/LetsencryptGlesysHook/config
config
och skriv in uppgifterna enligt nedan. Glöm inte att ta bort brädgårdarna framför respektive rad.CHALLENGETYPE="dns-01"
HOOK="${BASEDIR}/glesys-dns-01-hook.sh"
CONTACT_EMAIL=user@example.com
Dehydrated använder som standard domains.txt
för att hantera vilka domäner som den ska skapa eller uppdatera certifikat för.
Syntax för att visa vad filen innehåller är cat domains.txt
. Det skulle till exempel kunna se ut så här:
example.net www.example.net
example.se dev.example.se
Det här skapar två certifikat och domänerna efter initiala domänen på samma rad blir alternative names.
example.com
. Med följande kommando skriver vi till domains.txt
:echo "example.com www.example.com" > domains.txt
chmod 700 glesys-dns-01-hook.sh dehydrated
chmod 600 domains.txt config .glesys-credentials
-c
för att skapa certifikaten för vår domän:./dehydrated -c
# INFO: Using main config file /etc/ssl/private/config.sh
+ Generating account key...
+ Registering account key with letsencrypt...
Processing example.com with alternative names: www.example.com
+ Signing domains...
+ Creating new directory /etc/ssl/private/certs/example.com ...
+ Generating private key...
+ Generating signing request...
+ Requesting challenge for example.com...
+ Requesting challenge for www.example.com...
+ Responding to challenge for example.com...
+ Challenge is valid!
+ Responding to challenge for www.example.com...
+ Challenge is valid!
+ Requesting certificate...
+ Checking certificate...
+ Done!
+ Creating fullchain.pem...
+ Done!
Nu är det klart och certifikaten hittar du i katalogen /etc/ssl/private/certs/
.
Ett konkret exempel
För att använda certifikaten till din webbserver som kör apache2 lägger du till följande i konfigurationen:
SSLEngine on
SSLCertificateFile /etc/ssl/private/certs/example.com/cert.pem
SSLCertificateKeyFile /etc/ssl/private/certs/example.com/privkey.pem
SSLCertificateChainFile /etc/ssl/private/certs/example.com/chain.pem
Tips!
Ett kostnadsfritt SSL-certifikat från Let's Encrypt är endast giltigt i 90 dagar. För att autoförnya certifikatet klockan 24:00 varje söndag i månaden, kan du använda dig av följande cronjob:
crontab -e
00 00 * * 06 /etc/ssl/private/dehydrated -c &>/dev/null
Kontakta oss gärna för mer information. Vi hjälper dig att komma fram till den bästa lösningen för dina behov.