Hi.
Ich habe unserem Unifi-Controller gerade ein gültiges LE-Zertifikat spendiert. Wir setzen intern wie extern einen FQDN ein, so dass es damit keine Probleme gibt.
Da der Unifi-Controller bekanntlich auf Port 8443 läuft und dahinter eine Java-Engine steckt, muss man noch etwas in die Trickkiste greifen, damit die Software das neue Zertifikat akzeptiert. Diese Schritte dokumentiere ich hier…
Vorarbeit: LE-Zertifikat besorgen und auf den unifi-Controller kopieren. Ich lasse das die OPNSense-FW erledigen. Das Zertifikat ist also bereits vorhanden und gültig. Es liegt auf dem unifi-Controller unter /etc/ssl/private
. Benötigt werden diese drei Dateien mit diesen Namen:
-rw-r----- 1 root ssl-cert 2285 Jun 26 15:33 unifi.cert.pem
-rw-r----- 1 root ssl-cert 3933 Jun 26 15:33 unifi.fullchain.pem
-rw------- 1 root ssl-cert 3243 Jun 26 15:33 unifi.privkey.pem
Auf dem Controller ist nun nur noch dieses Script auszuführen:
#!/bin/bash
#set -x
#######################################################################################################
# Scriptname : cert-update-unifi.sh
# Author : Michael Hagedorn
# Date : 2020-26-06
# Category : geeignet für unifi-Controller
# Requires : openssl, rsync, keytool
#Version :
VER='1.1'
# Dieses Script versorgt einen Unifi-Controller (hier unter Ubuntu 20.04 LTS) mit einem gültigen
# LE-Zertifikat.
#########################################################################################################
# aus LE-Certs einen P12-Key mit temp. Passwort erzeugen:
openssl pkcs12 -export -in /etc/ssl/private/unifi.cert.pem -inkey /etc/ssl/private/unifi.privkey.pem -out ./unifi-cert.p12 -name unifi -CAfile /etc/ssl/private/unifi.fullchain.pem -caname root -password pass:temppass
#Backup des alten Keystores:
rsync -avz /var/lib/unifi/keystore /var/lib/unifi/keystore.backup
#Listet das unifi-Zertifikat auf:
keytool -alias unifi -destkeystore /var/lib/unifi/keystore -deststorepass aircontrolenterprise -list
#Löscht den Eintrag, bevor der neue Eintrag importiert wird:
keytool -alias unifi -destkeystore /var/lib/unifi/keystore -deststorepass aircontrolenterprise -delete
#Key für Unifi-Controller importieren:
keytool -importkeystore -deststorepass aircontrolenterprise -destkeypass aircontrolenterprise -destkeystore /var/lib/unifi/keystore -srckeystore ./unifi-cert.p12 -srcstoretype PKCS12 -alias unifi -srcstorepass temppass
#Format des keystores ändern (pkcs12, nicht-proprietär)
#keytool -importkeystore -srckeystore /var/lib/unifi/keystore -destkeystore /var/lib/unifi/keystore -deststoretype pkcs12 -srcstorepass aircontrolenterprise
#p12-Cert wieder löschen:
rm ./unifi-cert.p12
#Dienst neu starten:
service unifi restart
Ergebnis:
Vielleicht kann das ja jemand gebrauchen … am längsten hat es gedauert, die Befehle für das keytool zusammen zu suchen…
Schöne Grüße,
Michael