Zum Hauptinhalt springen

TLS-Konfiguration

Diese Endpoints verwalten das TLS-Zertifikat, das vom IDIAL REST API-Server selbst verwendet wird. Das Hochladen eines neuen Zertifikats erfordert einen Neustart des Dienstes, damit der neue TLS-Kontext wirksam wird.

GET /tls

Gibt die aktuelle TLS-Konfiguration des IDIAL-Containers zurück.

Authentifizierung: X-API-Key erforderlich

Anfrage

curl -X GET http://localhost:5000/tls \
-H "X-API-Key: your-api-key"

Antwort 200

{
"enabled": true,
"cert_file": "/app/tls/tls_server_cert.pem",
"key_file": "/app/tls/tls_server_key.pem",
"tls_server_certificate": "-----BEGIN CERTIFICATE-----\nMIID...\n-----END CERTIFICATE-----",
"fingerprint": "AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD",
"protocols": ["TLSv1_2", "TLSv1_3"],
"ciphers": ["ECDHE-RSA-AES256-GCM-SHA384", "ECDHE-RSA-AES128-GCM-SHA256"],
"message": "TLS is active"
}

Antwortfelder

FeldTypBeschreibung
enabledbooleanGibt an, ob TLS aktuell konfiguriert ist.
cert_filestringPfad zur TLS-Zertifikatsdatei im Container.
key_filestringPfad zur TLS-Privatschlüsseldatei im Container.
tls_server_certificatestring | nullPEM-kodiertes TLS-Serverzertifikat.
fingerprintstring | nullSHA-1-Fingerabdruck des Zertifikats (Doppelpunkt-getrennte Hex-Darstellung).
protocolsstring[]Unterstützte TLS-Protokollversionen.
ciphersstring[]Unterstützte Cipher Suites.
messagestringStatus- oder Informationsmeldung.

POST /tls

Lädt ein neues TLS-Serverzertifikat aus einem PKCS#12-Bundle hoch. Zertifikat und privater Schlüssel werden extrahiert und gespeichert. Ein Neustart des Dienstes ist erforderlich, damit der neue TLS-Kontext wirksam wird.

Authentifizierung: X-API-Key erforderlich

warnung

Nach dem Hochladen eines neuen Zertifikats über diesen Endpoint muss der IDIAL-Dienst neu gestartet werden, damit der neue TLS-Kontext wirksam wird. Das alte Zertifikat bleibt bis zum Neustart aktiv.

PKCS#12-Bundle erstellen

# PKCS#12 aus vorhandenem Zertifikat und Schlüssel erstellen
openssl pkcs12 -export \
-in server.crt \
-inkey server.key \
-out server.p12 \
-passout pass:your-password

# Als Base64 kodieren (einzeilig)
base64 -w 0 server.p12

Anfrage

curl -X POST http://localhost:5000/tls \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"tls_server_pkcs12_base64": "MIIJrQIBAzCC...",
"tls_server_pkcs12_password": "your-password"
}'

Anfragefelder

FeldTypPflichtBeschreibung
tls_server_pkcs12_base64string (≥ 160 Zeichen)JaBase64-kodierte PKCS#12-Datei mit Zertifikat und privatem Schlüssel.
tls_server_pkcs12_passwordstring (≤ 1024 Zeichen)JaPasswort zur Entschlüsselung der PKCS#12-Datei.

Antwort 200

Die Antwort entspricht dem Format von GET /tls, mit einer zusätzlichen Bestätigungsmeldung.

Antwort 400

{"error": "string"}

Wird zurückgegeben, wenn das PKCS#12-Bundle ungültig ist, nicht entschlüsselt werden kann oder das extrahierte Zertifikat fehlerhaft ist.