Hinweis
Das nachfolgende Vorgehen basiert auf der Nutzung des Freeware Tools:
Tool XCA - X Certificate and Key Management
Das ist ein umfangreiches Tool zur Erstellung von Zertifikaten von Christian Hohnstädt (hohnstaedt.de). Verfügbar bei verschiedenen Download Anbietern (z.B. Heise.de).
Es können natürlich andere verfügbare Tools verwendet werden.
Grundlagen
Es wird ein neues Projekt pro Kunde - genauer pro Anlage oder pro SC Netzwerk - angelegt.
Das Projekt enthält einen CA Private Key. Dieser sollte aus Sicherheitsgründen nicht zwingend exportieren, sondern im Projekt lassen.
Dieser CA Private Key ist Grundlage für das abgeleitete CA Zertifikat und alle weiteren Zertifikate für die einzelnen Teilnehmer im SC Netzwerk.
Pro Teilnehmer soll ein eigener Private Key erzeugt werden. Jeder der Teilnehmer bekommt aus dem CA Private Key und dem Private Key ein eigenes Zertifikat.
Vorgehensweise
1. Datenbank erstellen
Das Tool XCA starten und über Datei/Neue Datenbank das Passwort festlegen und damit die Datenbank anlegen. Dieses Passwort sollte sicher dokumentiert und dem Betreiber der Anlage übergeben werden, falls diese Datenbank später weitergeführt werden soll.
2. Private Schlüssel erstellen [Private Schlüssel] / [Neuer Schlüssel]
Hinweis: Eine durchdachte Namenskonvention führt zu einer klaren Übersicht und lässt beim Export ein schnelleres Zuordnen zu.
Für den CA_key: firmenname_CA_key
Für die weiteren Schlüssel: firmenname_knotenname_key
Hierbei kann der Knotenname auch dem Gerätenamen entsprechen bzw. die Knoten werden durchnummeriert Node1 bis NodeX:
Folgende Parameter für die Privaten Schlüssel zu nehmen:
Schlüsseltyp: EC (Elliptic Curve)
Kurvenname: prime256v1: X9.62/SECG curve over a 256 bit prime field
Hinweis: Die verwendete Verschlüsslung muss von jedem BACnet Gerät unterstützt werden
3. CA-Zertifikat erstellen [Zertifikate]
Im Reiter [Zertifikate] kann man ein neues Zertifikat erstellen
Folgende Angaben sind dabei einzutragen:
[Herkunft]
Unterschreiben: Selbstsigniertes Zertifikat erstellen
Signatur Algorithmus: SHA 256
[Inhaber]
Interner Name/Common Name sind Pflichtfelder, hier gilt wieder die Namenskonvention:
firmenname_CA_certPrivater Schlüssel: CA_key
[Erweiterungen]
Typ: Zertifikats Authorität
Zeitspanne: mit Kunden abzustimmen oder nach eigenem Ermessen
[Schlüsselverwendung]
Certificate Sign
4. Vorlage erstellen [Vorlagen] / [Neue Vorlagen]
Für die Teilnehmer-Zertifikate kann eine Vorlage erstellen werden. Das verringert die Anzahl der Arbeitsschritte im Anschluss daran.
[Neue Vorlage] Vorlagenwert auswählen (TLS Client oder TLS Server).
[Inhaber]
CommonName anpassen: Firmenname_Teilnehmer_cert
Interner Name ist zum Wiederauffinden der Vorlage
[Erweiterungen]
Typ: End Instanz
Zeitspanne: Sollte dieselbe Dauer haben wie das CA_cert
[Schlüsselverwendung]
Digital Signature
Key Encipherment
Data Encipherment
Key Agreement
5. Restliche Zertifikate erstellen:
Hinweis: Es ist hilfreich, wenn man die Teilnehmer-Zertifikate erstellt, das CA_cert angeklickt zu haben. Das führt dazu, dass sich die neuen Zertifikate auf das CA_cert direkt beziehen.
[Herkunft]
Verwende dieses Zertifikat zum Unterschreiben: CA_cert (sollte automatisch drinstehen, da das CA_Cert angeklickt war.
die definierte Vorlage aussuchen und alles übernehmen
[Inhaber]
Interner Name und CommonName entsprechend der Namenskonvention anpassen
Privater Schlüssel: entsprechenden Key auswählen
Alles weitere:
sollte automatisch aus der Vorlage kommen, andernfalls siehe Schritt 4: Vorlage erstellen
6. Zertifikate/Keys exportieren
Abschließend müssen nun noch jedes Zertifikat und jeder Key exportiert werden.
Hinweis: Der CA_key bildet die Ausnahme und sollte nicht exportiert werden)
Gateway Einstellungen
In der Konfigurationsdatei bac1.cfg:
DeviceUUID = 04AA11FB-E258-184F-93CB-791E4844B73C
Dieser Parameter sollte nicht auf [Default] sein. Hier kann man sich aus BACeye oder einem anderen UUID Generator einen Random-Code holen.
Gateway/Router Einstellungen
In der Konfigurationsoberfläche unter /Settings:
SC als Layer auswählen
VMAC generieren
Weiterhin unter Security:
Accept invalid host cert. [yes]
Server checks client cert. [yes]
alle weiteren Parameter deaktivieren oder auf Nutzerwunsch anpassen
Zertifikate und Key hochladen
Zertifikate verlängern
Bei den Zertifikaten kann man auf Verlängerung klicken.
Hier ist es wichtig zuerst das CA_Cert zu verlängern.
Danach kann man als Sammelaktion alle anderen Zertifikate per Sammelaktion verlängern. Die alten Zertifikate können gelöscht werden.
Es werden nur noch die _Cert zum Austauschen benötigt. Die _key bleiben unverändert.