Lets Encrypt jail
Lets Encrypt jail
Setup for letsencrypt service jail with iocage.
On FreeNAS
Create jail:
iocage create --release 11.1-RELEASE --name letsencrypt \
boot="on" vnet=on bpf=on \
allow_raw_sockets="1" \
ip4_addr="vnet1|172.20.40.38/24" \
interfaces="vnet1:bridge1" \
defaultrouter="172.20.40.1" \
resolver="search ramsden.network;nameserver 172.20.40.1;nameserver 8.8.8.8"Datasets
On FreeNAS create user and group acme, GID/UID 169.
In web ui create mount datasets:
letsencrypt
letsencrypt Data
mountpoint:
/var/db/acme/*/mnt/tank/data/database/letsencrypt/acme
certs
mountpoints:
/mnt/certs/<cert>*couchpotato.ramsden.network/mnt/certs/couchpotato.ramsden.network/mnt/tank/data/database/letsencrypt/certs/couchpotato.ramsden.network*emby.ramsden.network/mnt/certs/emby.ramsden.network/mnt/tank/data/database/letsencrypt/certs/emby.ramsden.network*lilan.ramsden.network/mnt/certs/lilan.ramsden.network/mnt/tank/data/database/letsencrypt/certs/lilan.ramsden.network*sabnzbd.ramsden.network/mnt/certs/sabnzbd.ramsden.network/mnt/tank/data/database/letsencrypt/certs/sabnzbd.ramsden.network*sickrage.ramsden.network/mnt/certs/sabnzbd.ramsden.network/mnt/tank/data/database/letsencrypt/certs/sabnzbd.ramsden.network*syncthing.ramsden.network/mnt/certs/syncthing.ramsden.network/mnt/tank/data/database/letsencrypt/certs/syncthing.ramsden.network
Have the acme user own thedatasettank/data/database/letsencrypt/acme.
Mount /mnt/tank/data/database/letsencrypt/acme to /var/db/acme/ Mount the certs under /var/db/acme/certs/
Nullfs mount datasets in jail:
letsencrypt data:
Setup directories for certs:
Mount the directories:
Check fstab:
Start jail and enter.
Jail
In the jail, update all packages and install acme.sh.
Switch to the ‘acme’ user which renews the certificate on a cron job add configuration.
Issue cert
Add acme to le in FreeNAS and jail.
chown certs dir in freenas to acme:le recursively.
Set Install Location
Now, to set the install location for the certificates use the installcert command, for example:
Cert deploy location: /etc/certificates
Various Services
Various Services need their certificates installed two different locations, and some of them need some changes. There are a few that I make changes to from the default.
Emby
Emby needs pks file, to convert cert key cert and ca are needed
Set deploy location
Install directory in jail: /var/db/emby-server/ssl
Cron:
Crontab from freenas:
You probably want to renew starts on a crontab so they get done every month. I use the following script to renew my various services:
Last updated