CA-Zertifikat in Docker

Einleitung

Es kann notwendig sein, ein Zertifikat in den Docker-Container zu laden und dieses vertrauenswürdig zu machen. Im nachfolgenden Beispiel ist im Verzeichnis, in dem die docker-compose.yml abgelegt wurde, ein Unterverzeichnis selfsigned erzeugt worden, in dem das Zertifikat und das dazugehörige Script liegen. In diesem Ordner muss eine Datei mit folgendem Inhalt angelegt werden. Im Beispiel trägt die Datei den Namen trust_selfsigned.sh. Das zu kopierende Zertifikat hat den Dateinamen CAcert.pem.

Script

#!/bin/bash

cp /opt/selfsigned/CAcert.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust
echo "Self-signed CA certificate has been added to OS trust store"

Als nächstes müssen in der docker-compose.yml das Script und das Zertifikat gemountet werden.

Script und Code mounten

services:
  relution:
    environment:
      ...
      - RELUTION_PRERUN_SCRIPT=/opt/selfsigned/trust_selfsigned.sh
    ...
    volumes:
      - './application.yml:/opt/relution/application.yml'
      - './selfsigned:/opt/selfsigned'

Ausgabe des Curl

Die Funktion kann mit einem CURL getestet werden.

[root@d4b846425890 relution]# curl -I https://selfsigned.server.relution.io
HTTP/1.1 302 Found
Date: Tue, 21 Sep 2021 12:37:10 GMT
Server: Apache/2.4.38 (Univention)
Location: https://selfsigned.server.relution.io/portal/
Content-Type: text/html; charset=iso-8859-1