Handbuch

Vorbereitung für die SONIA-Entwicklungsumgebung

Einmalig je Rechner: Hosts-Eintrag für id.dev.sonia.de und das Root-Zertifikat des Ostfalia-Rechenzentrums – für Linux (Debian/Ubuntu), macOS und Windows.

Worum es geht

In der SONIA-Entwicklungsumgebung des Rechenzentrums der Ostfalia Hochschule läuft Keycloak lokal auf dem eigenen Rechner. Erreichbar ist es über den Proxy der SONIA-Umgebung auf Port 443 unter https://id.dev.sonia.de. Beim Backend-Login leitet TYPO3 den Browser dorthin weiter. Damit das klappt, braucht jeder Entwicklungsrechner zwei Vorbereitungen:

  1. Hosts-Eintrag: 127.0.0.1 id.dev.sonia.de muss in der Hosts-Datei stehen. Es gibt keinen öffentlichen DNS-Eintrag, der Name soll auf den eigenen Rechner zeigen.
  2. Root-Zertifikat: Das Zertifikat von id.dev.sonia.de stammt von der Ostfalia RZ Root CA. Ihr Root-Zertifikat ofca.crt muss im Zertifikatsspeicher (Schlüsselbund) des Betriebssystems als vertrauenswürdig eingetragen sein, sonst meldet der Browser eine unsichere Verbindung.

Beides ist nur einmal pro Rechner nötig und erfordert Administratorrechte. Das Zertifikat liegt im Projekt unter config/certs/ofca.crt. Die Container brauchen nichts davon: Das Zertifikat ist bereits im Image enthalten, und docker-compose.override.yml leitet den Namen im Container auf den Rechner um.

Vor dem Eintragen den Fingerabdruck prüfen. Er muss genau so lauten:

NameOstfalia RZ Root CA (Ostfalia Hochschule für angewandte Wissenschaften, Rechenzentrum, Wolfenbüttel)
Gültig bis19. Februar 2058
SHA-25619:83:D2:C0:7F:D4:A3:1F:B2:32:DA:CB:4D:3C:87:F3:D0:5B:7A:F0:6D:21:B1:BB:0E:3A:E6:55:D8:D5:42:2E
# Linux und macOS
openssl x509 -in config/certs/ofca.crt -noout -subject -fingerprint -sha256

# Windows (PowerShell)
$c = [Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Path .\config\certs\ofca.crt).Path)
[BitConverter]::ToString([Security.Cryptography.SHA256]::Create().ComputeHash($c.RawData))   # mit - statt :

1.1 Hosts-Eintrag unter Linux (Debian/Ubuntu) und macOS

Unter Linux (Debian, Ubuntu) und macOS ist die Hosts-Datei /etc/hosts. Den Eintrag nur ergänzen, wenn er noch fehlt:

grep -q 'id\.dev\.sonia\.de' /etc/hosts || echo '127.0.0.1 id.dev.sonia.de' | sudo tee -a /etc/hosts

macOS hält Namensauflösungen im Cache. Danach deshalb den Cache leeren:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Unter Linux greift der Eintrag sofort. Prüfen, ob der Name auf 127.0.0.1 zeigt:

getent hosts id.dev.sonia.de      # Linux
dscacheutil -q host -a name id.dev.sonia.de   # macOS

1.2 Hosts-Eintrag unter Windows

Die Hosts-Datei ist C:\Windows\System32\drivers\etc\hosts. Sie lässt sich nur mit Administratorrechten ändern. Am einfachsten in einer PowerShell als Administrator:

$hosts = "$env:SystemRoot\System32\drivers\etc\hosts"
if (-not (Select-String -Path $hosts -Pattern 'id\.dev\.sonia\.de' -Quiet)) {
    Add-Content -Path $hosts -Value "`r`n127.0.0.1 id.dev.sonia.de"
}
ipconfig /flushdns

Alternativ den Editor über „Als Administrator ausführen“ starten, die Datei öffnen und die Zeile 127.0.0.1 id.dev.sonia.de am Ende ergänzen. Manche Virenscanner sperren Änderungen an der Hosts-Datei. Dann den Eintrag dort freigeben.

Prüfen (die Antwort muss von 127.0.0.1 kommen):

Resolve-DnsName id.dev.sonia.de

2.1 Root-Zertifikat unter macOS

Das Zertifikat kommt in den System-Schlüsselbund und wird dort als vertrauenswürdige Root-CA markiert. Im Terminal (im Projektverzeichnis):

sudo security add-trusted-cert -d -r trustRoot \
    -k /Library/Keychains/System.keychain config/certs/ofca.crt

Mit der Oberfläche: ofca.crt doppelklicken und als Schlüsselbund „System“ wählen. Dann in der App Schlüsselbundverwaltung unter „System“ das Zertifikat „Ostfalia RZ Root CA“ öffnen und bei Vertrauen → Bei Verwendung dieses Zertifikats „Immer vertrauen“ einstellen.

Safari, Chrome und Edge nutzen den Schlüsselbund direkt. Firefox übernimmt ihn ebenfalls, solange in about:config die Einstellung security.enterprise_roots.enabled auf true steht (Standard). Den Browser danach neu starten.

2.2 Root-Zertifikat unter Linux (Debian/Ubuntu)

Beschrieben für Debian und Ubuntu. Das Zertifikat liegt im PEM-Format vor und muss mit der Endung .crt nach /usr/local/share/ca-certificates/:

sudo cp config/certs/ofca.crt /usr/local/share/ca-certificates/ofca.crt
sudo update-ca-certificates

Damit vertrauen curl, wget und andere Programme dem Zertifikat. Browser haben unter Linux teils eigene Speicher:

  • Chrome/Chromium: nutzt in aktuellen Versionen den Systemspeicher. Sonst unter Einstellungen → Datenschutz und Sicherheit → Sicherheit → Zertifikate verwalten importieren oder per Kommandozeile in die NSS-Datenbank eintragen (Paket libnss3-tools):
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "Ostfalia RZ Root CA" -i config/certs/ofca.crt
  • Firefox: Einstellungen → Datenschutz & Sicherheit → Zertifikate anzeigen → Zertifizierungsstellen → Importieren, dann „Dieser CA vertrauen, um Websites zu identifizieren“ ankreuzen. Unter Ubuntu ist Firefox ein Snap-Paket und sieht den Systemspeicher nicht – dort also immer so importieren.

Den Browser danach neu starten.

2.3 Root-Zertifikat unter Windows

Das Zertifikat kommt in den Speicher „Vertrauenswürdige Stammzertifizierungsstellen“ des lokalen Computers. In einer PowerShell als Administrator (im Projektverzeichnis):

Import-Certificate -FilePath .\config\certs\ofca.crt -CertStoreLocation Cert:\LocalMachine\Root

# oder mit der Eingabeaufforderung als Administrator:
certutil -addstore -f Root config\certs\ofca.crt

Mit der Oberfläche: ofca.crt doppelklicken → Zertifikat installieren → Lokaler Computer → Alle Zertifikate in folgendem Speicher speichern → Vertrauenswürdige Stammzertifizierungsstellen → Fertig stellen. Die Sicherheitswarnung mit „Ja“ bestätigen, nachdem der Fingerabdruck geprüft ist.

Edge und Chrome nutzen den Windows-Speicher direkt. Firefox übernimmt ihn, solange security.enterprise_roots.enabled in about:config auf true steht (Standard). Den Browser danach neu starten.

3. Prüfen

Läuft die SONIA-Umgebung mit Keycloak, muss die Konfiguration des Realms ohne Zertifikatsfehler abrufbar sein:

# Linux und macOS
curl -sS https://id.dev.sonia.de/realms/sonia/.well-known/openid-configuration | head -c 200

# Windows (PowerShell)
(Invoke-WebRequest https://id.dev.sonia.de/realms/sonia/.well-known/openid-configuration -UseBasicParsing).StatusCode

Im Browser zeigt https://id.dev.sonia.de/realms/sonia das Schloss-Symbol ohne Warnung. Danach führt der Backend-Login unter http://typo3-v14.localhost:8088/typo3/ direkt zur Keycloak-Anmeldung.

FehlerbildUrsache
„Server nicht gefunden“ / Could not resolve hostHosts-Eintrag fehlt oder DNS-Cache noch nicht geleert
„Verbindung verweigert“ / Connection refusedEintrag stimmt, aber die SONIA-Umgebung (Keycloak-Proxy auf Port 443) läuft nicht
„Ihre Verbindung ist nicht privat“ / SSL certificate problemRoot-Zertifikat fehlt im Systemspeicher bzw. im Speicher des Browsers, oder der Browser wurde noch nicht neu gestartet