Zum Inhalt

CertBot

Einleitung

Unser Hosting System wird folgende Dienste umfassen.

  • CertBot 2.8.0 (LetsEncrypt ACME API 2.0)

Voraussetzungen

Zu den Voraussetzungen für dieses HowTo siehe bitte: Hosting System

Installation

Wir installieren security/py-certbot und dessen Abhängigkeiten.

Bash
mkdir -p /var/db/ports/security_py-certbot
cat << "EOF" > /var/db/ports/security_py-certbot/options
_OPTIONS_READ=py39-certbot-2.8.0
_FILE_COMPLETE_OPTIONS_LIST=MANPAGES
OPTIONS_FILE_SET+=MANPAGES
"EOF"


cd /usr/ports/security/py-certbot
make all install clean-depends clean


cat << "EOF" >> /etc/periodic.conf
weekly_certbot_enable="YES"
"EOF"

Konfiguration

Es müssen zuerst noch zwei DNS-Records angelegt werden, sofern sie noch nicht existieren, oder entsprechend geändert werden, sofern sie bereits existieren.

Text Only
example.com.            IN  CAA     ( 0 issue "letsencrypt.org" )
example.com.            IN  CAA     ( 0 issuewild "letsencrypt.org" )

Wir beziehen nun erstmal die für dieses HowTo benötigten Zertifikate:

Bash
certbot register --standalone --agree-tos --no-eff-email -m admin@example.com

certbot certonly --standalone --key-type=ecdsa --elliptic-curve=secp384r1 -d devnull.example.com -d example.com
certbot certonly --standalone --key-type=ecdsa --elliptic-curve=secp384r1 -d mail.example.com
certbot certonly --standalone --key-type=ecdsa --elliptic-curve=secp384r1 -d www.example.com

Wir konfigurieren CertBot für den Bezug unserer Zertifikate:

Bash
mkdir -p /usr/local/etc/letsencrypt
cat << "EOF" > /usr/local/etc/letsencrypt/cli.ini
key-type = ecdsa
elliptic-curve = secp384r1
rsa-key-size = 4096
email = admin@example.com
authenticator = webroot
webroot-path = /data/www/acme
server = https://acme-v02.api.letsencrypt.org/directory
text = true
agree-tos = true
preferred-challenges = http
"EOF"

Abschluss

Weitere Zertifikate für einzelne Domains können, sobald der Webserver Apache installiert und gestartet ist, dann künftig so erstellt werden:

Bash
certbot certonly -d subdomain.example.com

Author: Markus Kohlmeyer

Last updated:

License: CC BY-NC-SA 4.0