Hinweis
Das nachfolgende Vorgehen basiert auf der Nutzung des Freeware Tools:
XCA - X Certificate and Key Management
Es 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 auch andere verfügbare Tools verwendet werden.
Die Schreibweise im folgenden Text bedeutet [Schaltfläche] bzw. [Reiter/Tab] bezogen auf das o.g. Tool.
Grundlagen
Das CA Zertifikat mit dem zugehörigen CA Private Key stellt die ‚Certificate Authority‘ dar, welche alle weiteren Nutzerzertifikate signiert. Jeder Teilnehmer muss über dieses CA Zertifikat verfügen, um die Zertifikate der anderen Teilnehmer zu validieren.
Außerhalb eines Konformitätstest - also im realen Anwenderfall - ist dieser CA Private Key kritisch. Er sollte aus Sicherheitsgründen nicht exportiert werden.
Jedes Nutzerzertifikat benötigt einen eigenen Private Key und wird bei Erstellung durch das CA Zertifikat signiert.
Vorgehensweise
1. Datenbank erstellen
Das Tool XCA starten und über Datei/Neue Datenbank das Passwort festlegen und damit die Datenbank anlegen.
Hinweis
Sollen diese Zertifikate auch im Rahmen einer BACnet-Zertifizierung (Konformitätstest) verwendet werden, sind Datenbank und Passwort dem Testlabor zu übergeben, um Certificate Signing Requests (CSR) bearbeiten zu können.
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. Der Name des jeweiligen Nodes ist dafür empfohlen.
· Für den CA_key: CA_key
· Für die weiteren Schlüssel: <Nodename>_key
Beispiel: IUT_key, BTF_key, D2_key, D3_key, BACeye_key …usw.
Hinweis
Die Reihenfolge der Arbeitsschritte erlaubt es natürlich auch, die Schlüssel innerhalb der Zertifikatserstellung zu erzeugen.
Folgende Parameter sind für alle Privaten Schlüssel zu benutzen:
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 Secure-Connect BACnet Gerät unterstützt werden.
3. CA-Zertifikat erstellen [Zertifikate]
Im Reiter [Zertifikate] ein [Neues Zertifikat] erstellen.
Folgende Angaben sind dabei einzutragen:
[Herkunft]
Unterschreiben: Selbstsigniertes Zertifikat erstellen
Signatur Algorithmus: SHA 256
[Inhaber]
Interner Name und Common Name sind Pflichtfelder - hier ebenfalls die Namenskonvention anzuwenden erleichtert die Übersicht
Privater Schlüssel: CA_key
Hinweis
Von der Reihenfolge der Arbeitsschritte her ist es auch möglich, an dieser Stelle den zugehörigen Schlüssel zu erzeugen.
[Erweiterungen]
Typ: Zertifikats Authorität
Zeitspanne: großzügige Zeitspannen ersparen Nacharbeit bei Verzögerungen
[Schlüsselverwendung]
Certificate Sign
4. Vorlage erstellen [Vorlagen] / [Neue Vorlagen]
Hinweis
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
Interner Name für das Wiederauffinden der Vorlage
[Erweiterungen]
Typ: End Instanz
Zeitspanne: nicht länger als diejenige des CA-Zertifikats
[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.
Sobald das erste vom CA-Zertifikat abhängige Nutzerzertifikat erstellt worden ist, können mit dem kleinen Haken vor dem CA-Zertifikat die anderen Zertifikate aufgeklappt werden. Ansonsten bleiben diese eingeklappt und sind nicht sichtbar.
[Herkunft]
Verwende dieses Zertifikat zum Unterschreiben: CA_cert (sollte automatisch eingetragen sein, wenn das CA_Cert angeklickt war.
die definierte Vorlage aussuchen und alles übernehmen
[Inhaber]
Interner Name und Common Name passend wählen
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 muss jedes Zertifikat und muss jeder Key exportiert werden.
Hinweis
Der CA_key bildet dabei die Ausnahme und muss nicht exportiert werden. Er wird im Weiteren nicht benötigt
7. Einstellungen in BTF
In der Konfigurationsdatei bacstackd.ini sind die folgenden Parameter zu setzen:
server_ca_cert_file_path =
server_cert_file_path =
server_pkey_file_path =
client_ca_cert_file_path =
client_global_cert_file_path =
client_global_pkey_file_path =
Die Parameter müssen mit dem Ablageort der passenden Zertifikate und Schlüssel versehen werden.
Das kann dann im Ergebnis zum Beispiel so aussehen:
- server_ca_cert_file_path = C:\BTF\Projects\Name\user_data\Zertifikate\CA_cert.crt
Hinweis
Für die Parameter Server und Client können die gleichen Zertifikate verwendet werden.