Certbot
Certbot används för att enkelt kunna automatisera nya cert ifrån Let's Encrypt.
Contents
Installation
Börja med att installera EPEL repot.
yum -y install epel-release yum-utils
Installera sedan Certbot
yum install certbot python2-certbot-nginx
Börja med lägga till nya repon.
apt-get update apt-get install software-properties-common add-apt-repository universe add-apt-repository ppa:certbot/certbot apt-get update
Installera sedan certbot.
apt-get install certbot python-certbot-nginx
Konfiguration
Certbot körs första gången som en oneliner. Efter det skapas en config fil under /etc/certbot/renewal/ med alla inställningar du valde.
Certifikat sparas under /etc/letsencrypt/live/<domän>
Signera certifikat
Renew
Om du en gång skapat ett certifikat och vill signa om det för att det är på väg att gå ut kan du köra:
certbot renew
Om du vill göra en dry run gör du det med:
certbot renew --dry-run
Certifikat kommer inte renewas om det är mer än 30 dagar kvar tills dom går ut by default .
Webroot
Webroot signering fungerar genom att certbot lägger en fil i en viss mapp som sedan Let's Encrypts ACME server kommer försöka hämta för att validera att domänen du vill signa för pekar mot dig och att det är du.
Följande kommando kommer att signera ett cert för hackernet.se och www.hackernet.se.
certbot certonly --webroot --agree-tos --no-eff-email --email dinmail@hackernet.nu -w /path/to/webfolder -d hackernet.se, www.hackernet.se
Automatisera certifikat
Renew
Med hjälp av systemd timers kan man köra certbot renew med mellanrum för att se till att alla ens certifikat är giltiga.
Börja med att skapa följande service fil:
/etc/systemd/system/certbot-renewal.service |
---|
[Unit]
Description=Certbot Renewal [Service] |
Skapa sedan timer filen som kommer trigga servicen.
/etc/systemd/system/certbot-renewal.timer |
---|
[Unit]
Description=Timer for Certbot Renewal [Timer] [Install] |
Tjänsten kommer köras en gång i veckan och 300 sekunder efter boot. Eftersom certbot by default inte signerar nya cert om dom det är mer än 30 dagar kvar så räcker det med 1 gång i veckan.
Starta sedan timern:
systemctl start certbot-renewal.timer
Enable timern så att den startas vid boot:
systemctl enable certbot-renewal.timer
För att visa alla aktiva timers körs:
systemctl list-timers
Hooks
Certbot kan kalla på olika script före, under och efter en körning. Tex
Path | Help |
---|---|
/etc/letsencrypt/renewal-hooks/deploy | Körs enbart efter ett lyckat renewal av ett cert. |
/etc/letsencrypt/renewal-hooks/pre | Körs alltid före ett försöka att renewa. |
/etc/letsencrypt/renewal-hooks/post | Körs alltid efter ett försök att renewa. |
Ett exempel på en fil under deploy för att starta om nginx kan vara.
#!/bin/bash systemctl reload nginx.service