UniFi Controller mit Let´s Encrypt (SSL) Zertifikat

UniFi ist das Netzwerksystem von Ubiquiti mit einem tollem Softwaresystem aus Software-Controller, vielfältigen WLAN Access-Points, Netzwerkswitchen, Routern und das alles zu guten Preisen. Der Controller (CloudKey) bietet auch die Möglichkeit ein Hotspot-Gäste-Portal anzubieten. Damit der Controller mit SSL Verschlüsselung operiert sind einige Vorbereitungen notwendig.

Vorbereitungen

Als Namen für den Controller habe ich wlan.sotzny.de gewählt.

1. Natürlich benötigt man vorher das Let´s Encrypt Zertifikat. Dafür habe ich bei mir im Froxlor eine Subdomain wlan.sotzny.de angelegt und Froxlor kümmerte sich darum das Domain zu überprüfen und das Zertifikat zu besorgen. Hier kann man auch einen eignen Prozess etablieren der das für einen macht. Am Ende muss man die .crt und .key Datei besitzen.

2. Auf dem UniFi Security Gateway muss in der Datei /etc/hosts ein Eintrag für die Domain mit der IP des CloudKeys erfolgen. Dazu verbindet man sich mit dem Device Passwort (aus Site) und dem Benutzernamen admin

1
echo 192.168.100.100   wlan.sotzny.de  >> /etc/hosts

Dies ist notwendig, damit intern die Nutzer auf den Cloudkey umgeleitet werden.

Einspielen des Zertifikates

Es gibt zwei Stellen wo das Zertifikat genutzt werden muss. Einmal läuft auf dem Cloudkey ein nginx der einfach nur die .crt und die .key Datei benötigt.

Die Zertifikatsdateien sind per scp auf den cloudkey nach /etc/ssl/private zu kopieren:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# per SSH auf den CloudKey Verbinden - Device Passwort aus Einstellungen > Site
ssh [email protected]

# nginx beenden
/etc/init.d/nginx stop

# in diesem Ordner liegen die SSL Zertifikate
cd /etc/ssl/private

# entfernen der alten Dateien - optional sichern
rm cloudkey.crt
rm cloudkey.key

# Link setzen von den Let´s Encrypt Certs auf die neuen Orte
ln -s wlan.sotzny.de.crt cloudkey.crt
ln -s wlan.sotzny.de.key cloudkey.key

# Restart
/etc/init.d/nginx start

Nach einem Restart ist Port 443 auf dem CloudKey bereits umgestellt. Aber der Controller selbst ist eine JAVA-Anwendung die auf Port 8443 läuft. Um der Java-Machine das Let´s Encrypt Zertifikat zu überreichen muss man einen Java KeyStore (JKS) erstellen. Für die Erstellung benötigt man zuerst die Schlüssel als PKS12.

Dafür und für den JKS wird ein Passwort benötigt. Der Controller kennt das Passwort und kann den JKS öffnen.

Das Passwort lautet: aircontrolenterprise

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# beenden des UniFi Controllers
service unifi stop

# alten JKS löschen
rm unifi.keystore.jks

# umwandeln nach pkcs12
openssl pkcs12 -export -in cloudkey.crt -inkey cloudkey.key -out unifi.p12 -name unifi -password pass:aircontrolenterprise

# JKS erstellen
keytool -importkeystore -srckeystore unifi.p12 -srcstoretype PKCS12 -srcstorepass aircontrolenterprise -destkeystore unifi.keystore.jks -storepass aircontrolenterprise

# alte pkcs12 Datei wieder löschen
rm  unifi.p12

Jetzt wurde der neue JKS erstellt und kann benutzt werden. Damit der Zugriff gewährleistet ist sollten noch die Dateirechte neu gesetzt werden.

1
2
3
4
5
6
# Berechtigungen neu setzen
chown root:ssl-cert cloudkey.crt cloudkey.key unifi.keystore.jks
chmod 640 cloudkey.crt cloudkey.key unifi.keystore.jks

# restart
/etc/init.d/nginx restart; /etc/init.d/unifi restart
Port 443 (nginx) funktioniert..
Port 8443 (Java) auch – natürlich nur intern zu erreichen 🙂

Automatisches Update

Damit nun das Zertifikat ständig aktualisiert wird sollte man nun einen Cron-Job einrichten, welcher das Let´s Encrypt Zertifikat auf den CloudKey kopiert und das Skript zum Austausch aufruft. 1x die Woche sollte genügen 😀

Über den Autor Danny Sotzny

Hallo, ich bin Danny Sotzny und bin Software- entwickler und Fotograf. Dabei beschäftige ich mich mit aktuellen Technologien und bekannten Problemen. Schwerpunkte setze ich bei der Webentwicklung (PHP/JS) und der Software- entwicklung mit .NET (C#). Der Blog dient für mich selbst als Gedächtnishilfe für typische und alltägliche Probleme, aber auch persönliche Erlebnisse werden veröffentlicht. Ich betreibe zusätzlich noch Foto-Sotzny.de für meine Fotografien und sotzny.net, was meine Webseite für die Softwareentwicklung ist.

Über Danny Sotzny

Hallo, ich bin Danny Sotzny und bin Software- entwickler und Fotograf. Dabei beschäftige ich mich mit aktuellen Technologien und bekannten Problemen. Schwerpunkte setze ich bei der Webentwicklung (PHP/JS) und der Software- entwicklung mit .NET (C#). Der Blog dient für mich selbst als Gedächtnishilfe für typische und alltägliche Probleme, aber auch persönliche Erlebnisse werden veröffentlicht. Ich betreibe zusätzlich noch Foto-Sotzny.de für meine Fotografien und sotzny.net, was meine Webseite für die Softwareentwicklung ist.
Dieser Beitrag wurde unter Blogroll abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

1 Response to UniFi Controller mit Let´s Encrypt (SSL) Zertifikat

  1. Pingback: [UniFi] Umstellung Gäste-Portal auf https | Mein Blog

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.