für meine Ubiquiti Sachen (Switche, UAC) habe ich den Controller in ein Docker-Container auf alten Pi3 verfrachtet.
Das funktioniert so weit und tut was es soll. Was ich nicht hinbekomme ist - dem Controller meine Zertifikate mitzugeben, bzw so mitzugeben dass die auch funktionieren.
Als ich nur die UAC hatte, hatte ich die Controller Software auf einer Windows VM installiert die nicht permanent lief (Statistiken, Fehler o.ä waren mir egal. Es lief halt gut). Da war es mit den Zertifikaten irgendwie einfach - in der Controller Software neuen Zertifikat generieren lassen, durch meine eigene CA signieren, importieren fertig.
Nur wie ich das mit Docker bewältigen kann ist mir doch ein Rätsel. Ich habe etliche WEB-Seiten besucht wo "irgendetwas" in diese Richtung beschrieben wird aber entweder stelle ich mich echt ungeschickt ein oder sehe echt den Walt vor lauter Bäumen nicht mehr.
Vom Ansatz denke/ hoffe ich wäre folgendes am einfachsten:
Während der Bau kann ich das generieren von neuen Zertifikat anstoßen. Das Zertifikat kann ich anschließend aus dem Docker-Container kopieren und durch meine CA Signieren. Nur wie importiere ich es dann?
die letzten Zeilen in meinem Dockerfile sind:
Code: Alles auswählen
ENTRYPOINT ["/usr/bin/java", "-Xmx512M", "-jar", "/usr/lib/unifi/lib/ace.jar"]
CMD ["start"]
Nur das kriege ich irgendwie nicht hin. Also ein geschicktes Shellskript zu bauen, welches auch das Java passend startet. Nach dem ersten starten könnte ich das Zertifikat aus dem Verzeichnis (gemounted) löschen und Java sollte starten. Aber es will nicht. Wenn ich "docker ps" aufrufe, so wird scheinbar der Prozess regelmäßig neugestartet
Ich habe also während der Installation ein Skript hinein kopiert und mit chmod +x ausführbar gemacht. Dann im Dockerfile ENTRYPOINT komplett gelöscht und als CMD ["unifistart.sh"] hinterlegt
Code: Alles auswählen
#/bin/sh
FILE=/usr/local/cert/UniFi.crt
if [ -f "$FILE" ]; then
/usr/bin/java -jar /usr/lib/unifi/lib/ace.jar import_cert /usr/local/cert/UniFi.crt
fi
/usr/bin/java -Xmx512M -jar /usr/lib/unifi/lib/ace.jar &