> ## Documentation Index
> Fetch the complete documentation index at: https://docs.varios-ai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Vertrauenswürdige Zertifizierungsstellen einrichten

> Zertifikate interner Zertifizierungsstellen, etwa für interne Dienste oder TLS-Inspection, für ausgehende Verbindungen von VARIOS AI hinterlegen

In vielen Unternehmensumgebungen kommen **interne Zertifizierungsstellen (CAs)** oder selbstsignierte TLS-Zertifikate zum Einsatz – etwa für interne APIs, private Container-Registries oder Package-Repositories. Ebenso nötig ist dies, wenn eine Firewall oder ein Proxy mit TLS-Inspection den ausgehenden Datenverkehr aufbricht und mit einem eigenen Zertifikat neu signiert, etwa auf dem Weg zum Modellanbieter. Damit Anwendungen im VARIOS-AI-Container diese Zertifikate als vertrauenswürdig anerkennen, können Sie ein benutzerdefiniertes **CA-Zertifikatsbundle** vom Host in den Container einbinden.

Diese Konfiguration sorgt dafür, dass der Container zusätzliche bzw. angepasste CA-Zertifikate verwendet und TLS-Verbindungen zu Servern herstellen kann, die mit Ihren internen CAs signiert sind.

***

## Konfiguration

Der PHP-Container startet standardmäßig nicht als Root. `update-ca-certificates` benötigt jedoch Root-Rechte. Passen Sie in Ihrer `docker-compose.yml` deshalb den PHP-Container wie folgt an und binden Sie das Zertifikatsbundle als Volume ein.

Entfernen Sie einen vorhandenen **`command`** des PHP-Services. Der Start erfolgt über den angepassten **`entrypoint`**.

```yaml theme={null}
# docker-compose.yml

php:
  [...]
  user: "0:0"
  environment:
    PUID: "82"
    PGID: "0"
  entrypoint:
    - /bin/sh
    - -c
    - /usr/sbin/update-ca-certificates && exec /scripts/entrypoint.sh /scripts/run.sh
  volumes:
    [...]
    - "/etc/pki/tls/certs/ca-bundle.crt:/usr/local/share/ca-certificates/ca-bundle.crt:ro"
```

<Note>
  Der Beispielpfad `/etc/pki/tls/certs/ca-bundle.crt` entspricht typischen RHEL/CentOS-Systemen. Unter Debian/Ubuntu liegt das System-CA-Bundle oft unter `/etc/ssl/certs/ca-certificates.crt`. Passen Sie den Host-Pfad an Ihre Distribution an.
</Note>

***

## Anwenden

Speichern Sie die `docker-compose.yml` und starten Sie die Container neu:

```bash theme={null}
docker compose up -d
```

Falls die Container bereits laufen, genügt ein Neustart des PHP-Containers – z. B. `docker compose up -d php`.

***

## Ablauf

Beim Start des PHP-Containers führt der angepasste **entrypoint** diese Schritte automatisch aus – Sie müssen nichts manuell ausführen:

1. Das **CA-Bundle** wird vom Host unter `/usr/local/share/ca-certificates/` eingebunden.
2. Der Container startet als Root (`user: "0:0"`), damit **`update-ca-certificates`** die Zertifikate in den systemweiten Trust Store übernehmen kann.
3. **`/scripts/entrypoint.sh`** wechselt auf den Anwendungsbenutzer (`PUID`/`PGID`) und startet VARIOS AI über **`/scripts/run.sh`**.

***

## Ergebnis

Nach dem Start des Containers:

* Das CA-Bundle des Hosts ist im Container verfügbar.
* Die Zertifikate sind im **systemweiten Trust Store** registriert.
* Anwendungen im Container können TLS-Verbindungen zu Servern herstellen, die mit diesen CAs signiert sind.

***

## Typische Anwendungsfälle

* Nutzung einer **internen Firmen-CA**
* Zugriff auf **interne APIs mit selbstsignierten Zertifikaten**
* Vertrauensstellung für **private Container-Registries oder Package-Repositories**
* Ausgehender Datenverkehr über eine **Firewall oder einen Proxy mit TLS-Inspection**
