Zertifikate für die Nutzung im BTF erstellen


 

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.