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
| Feld | Typ | Beschreibung |
|---|---|---|
enabled | boolean | Gibt an, ob TLS aktuell konfiguriert ist. |
cert_file | string | Pfad zur TLS-Zertifikatsdatei im Container. |
key_file | string | Pfad zur TLS-Privatschlüsseldatei im Container. |
tls_server_certificate | string | null | PEM-kodiertes TLS-Serverzertifikat. |
fingerprint | string | null | SHA-1-Fingerabdruck des Zertifikats (Doppelpunkt-getrennte Hex-Darstellung). |
protocols | string[] | Unterstützte TLS-Protokollversionen. |
ciphers | string[] | Unterstützte Cipher Suites. |
message | string | Status- 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
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
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
tls_server_pkcs12_base64 | string (≥ 160 Zeichen) | Ja | Base64-kodierte PKCS#12-Datei mit Zertifikat und privatem Schlüssel. |
tls_server_pkcs12_password | string (≤ 1024 Zeichen) | Ja | Passwort 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.