setup
OpenBao Einrichtung & Konfiguration
Schritt-für-Schritt-Anleitung zur Konfiguration des OpenBao Auto-Unseal mit der DuoKey PKCS#11-Bibliothek
Gilt für:
OpenBaoPKCS#11 Auto-UnsealDuoKey CockpitSoftware Vault / Primus HSM
Voraussetzungen
Voraussetzungen
- OpenBao installiert und bereit zur Konfiguration
- DuoKey Cockpit-Konto mit einer erstellten KMS-Anwendung
- DuoKey PKCS#11-Bibliothek (libdke_pkcs11.so) kompiliert und installiert
- AES- oder RSA-Schlüssel vorab im Cockpit-Vault erstellt
- Netzwerkkonnektivität vom OpenBao-Server zur DuoKey Cockpit-API (HTTPS/443)
Wichtig
Der für das Auto-Unseal verwendete Verschlüsselungsschlüssel muss erstellt werden, bevor OpenBao konfiguriert wird. Wie in der OpenBao-Dokumentation beschrieben, muss der Schlüssel vor der Initialisierung vorhanden sein.
Einrichtungsschritte
KMS-App in DuoKey Cockpit erstellen
Erstellen Sie im DuoKey Cockpit eine KMS-Anwendung mit dem gewünschten Vault-Backend (Software Vault oder Primus HSM)
Verschlüsselungsschlüssel erstellen
Erstellen Sie im Cockpit-Vault den AES- oder RSA-Schlüssel, den OpenBao zum Versiegeln/Entsiegeln verwenden wird
PKCS#11-Bibliothek installieren
Kopieren Sie die kompilierte
libdke_pkcs11.so in einen bekannten Pfad, z. B. /usr/local/lib/pkcs11/Umgebungsvariablen konfigurieren
Legen Sie die Umgebungsvariablen der PKCS#11-Bibliothek für den Cockpit-Zugriff fest
OpenBao-Seal-Stanza konfigurieren
Fügen Sie die PKCS#11-Seal-Konfiguration zu Ihrer OpenBao-Konfigurationsdatei hinzu
OpenBao initialisieren oder neu starten
Initialisieren Sie OpenBao (beim ersten Mal) oder starten Sie es neu, um das Auto-Unseal zu verwenden
Umgebungsvariablen
Legen Sie die erforderlichen Umgebungsvariablen für die PKCS#11-Bibliothek fest, bevor Sie OpenBao starten. Diese können in einer Konfigurationsdatei abgelegt werden, die vom OpenBao-Dienst eingelesen wird.
/etc/dke/pkcs11.toml
[http_config]
server_url = "https://<cockpit-host>/api/apps/<app_id>/tde/pkcs11/<access_guid>"
access_token = "<access_guid>"
timeout_secs = 30
verify_tls = true
[pkcs11]
slot_id = 0
logging_level = "info"
logging_folder = "/var/log/dke-pkcs11"
export DKE_PKCS11_CONF=/etc/dke/pkcs11.toml
Tipp
Bei systemd-basierten Bereitstellungen können Sie diese Variablen zur Umgebungsdatei des OpenBao-Dienstes hinzufügen (z. B.
/etc/openbao.d/openbao.env).OpenBao-Seal-Konfiguration
Fügen Sie eine seal "pkcs11"-Stanza zu Ihrer OpenBao-Konfigurationsdatei hinzu (z. B. /etc/openbao.d/openbao.hcl).
AES-Schlüsselkonfiguration
seal "pkcs11" {
lib = "/usr/local/lib/pkcs11/libdke_pkcs11.so"
slot = "0"
pin = "1234"
key_label = "bao-root-key-aes-256"
mechanism = "0x00001087"
}
| Parameter | Beschreibung |
|---|---|
| lib | Pfad zur gemeinsam genutzten DuoKey PKCS#11-Bibliothek |
| slot | Slot-ID — auf "0" gesetzt |
| pin | Kann ein beliebiger Wert sein (wird von der Bibliothek derzeit nicht validiert) |
| key_label | Bezeichnung des in DuoKey Cockpit erstellten AES-Schlüssels |
| mechanism | 0x00001087 = CKM_AES_GCM |
RSA-Schlüsselkonfiguration
seal "pkcs11" {
lib = "/usr/local/lib/pkcs11/libdke_pkcs11.so"
slot = "0"
pin = "1234"
key_label = "bao-root-key-rsa-4096"
mechanism = "0x00000009"
rsa_oaep_hash = "sha256"
}
| Parameter | Beschreibung |
|---|---|
| lib | Pfad zur gemeinsam genutzten DuoKey PKCS#11-Bibliothek |
| slot | Slot-ID — auf "0" gesetzt |
| pin | Kann ein beliebiger Wert sein (wird von der Bibliothek derzeit nicht validiert) |
| key_label | Bezeichnung des in DuoKey Cockpit erstellten RSA-Schlüssels |
| mechanism | 0x00000009 = CKM_RSA_PKCS_OAEP |
| rsa_oaep_hash | Hash-Algorithmus für RSA-OAEP — verwenden Sie "sha256" |
Hinweis
Der Wert
slot ist die Slot-ID und kann auf "0" gesetzt werden. Der pin kann ein beliebiger Wert sein, da er von der Bibliothek derzeit nicht validiert wird.Backend-Kompatibilität
| Backend | AES (CKM_AES_GCM) | RSA (CKM_RSA_PKCS_OAEP) |
|---|---|---|
| Software Vault | Erfolgreich getestet | Erfolgreich getestet |
| Primus HSM | Nicht unterstützt — Primus akzeptiert den eingegebenen IV nicht und generiert einen eigenen, was mit den AES-GCM-Seal-Anforderungen inkompatibel ist | Erfolgreich getestet |
Vorsicht
Bei Verwendung von Primus HSM als Backend können nur RSA-Schlüssel für das Auto-Unseal verwendet werden. AES-basiertes Versiegeln funktioniert nicht, weil Primus seinen eigenen IV generiert, anstatt den von der Bibliothek bereitgestellten zu akzeptieren.
Verifizierung
Überprüfen Sie nach der Konfiguration von OpenBao, ob das Auto-Unseal funktioniert:
# Start or restart OpenBao
sudo systemctl restart openbao
# Check the seal status
bao status
Wenn das Auto-Unseal korrekt konfiguriert ist, sollte der Vault nach dem Start automatisch als entsiegelt gemeldet werden.
# Expected output (key fields)
# Seal Type: pkcs11
# Initialized: true
# Sealed: false
Fehlerbehebung
Tipp
Aktivieren Sie während der Ersteinrichtung die Debug-Protokollierung (
DKE_PKCS11_LOGGING_LEVEL=debug), um die Diagnose von Problemen zu erleichtern. Denken Sie daran, sie für den Produktivbetrieb wieder auf Info (0) oder höher zurückzusetzen.