Bedrud Dokumentation

Für isolierte Netzwerke - keine öffentliche Domain, kein ausgehendes Internet, eingeschränkte Konnektivität.

Browser erfordern vertrauenswürdiges HTTPS für Kamera/Mikrofon über WebRTC. Selbstsignierte Zertifikate funktionieren, zeigen jedoch Warnungen. Für eine saubere Einrichtung generieren Sie eine private CA und verteilen Sie diese an die Clients.

Private CA und Serverzertifikat generieren

Moderne Browser erfordern Subject Alternative Names (SANs) in Zertifikaten. Der Installer handhabt dies automatisch.

Option 1: Installer verwenden (empfohlen)

Der Befehl bedrud install erzeugt selbstsignierte Zertifikate mit korrekten SANs für die angegebenen IPs und Domains:

sudo bedrud install --tls --ip YOUR_SERVER_IP

Um auch einen Domainnamen einzuschließen:

sudo bedrud install --tls --ip YOUR_SERVER_IP --domain your.domain.com

Option 2: Manuelle Zertifikatserstellung

Falls die integrierte Erzeugung nicht zu Ihrem Workflow passt, fügen Sie die -addext-Flags zu den openssl-Befehlen hinzu:

#### Ed25519 (matches Bedrud's built-in generation, recommended)
 
```bash
openssl genpkey -algorithm ed25519 -out ca.key
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt \
  -subj "/CN=Bedrud Internal CA"
 
openssl genpkey -algorithm ed25519 -out server.key
openssl req -new -key server.key -out server.csr \
  -subj "/CN=<your-server-ip-or-hostname>" \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
openssl x509 -req -days 1825 -in server.csr \
  -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
 
sudo ./bedrud install --tls --cert server.crt --key server.key --ip YOUR_SERVER_IP

ECDSA P256 (alternative)

openssl ecparam -genkey -name prime256v1 -out ca.key
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt \
  -subj "/CN=Bedrud Internal CA"
 
openssl ecparam -genkey -name prime256v1 -out server.key
openssl req -new -key server.key -out server.csr \
  -subj "/CN=<your-server-ip-or-hostname>" \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
openssl x509 -req -days 1825 -in server.csr \
  -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
 
sudo ./bedrud install --tls --cert server.crt --key server.key --ip YOUR_SERVER_IP

RSA (legacy compatibility, larger keys)

openssl genrsa -out ca.key 4096
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt \
  -subj "/CN=Bedrud Internal CA"
 
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr \
  -subj "/CN=<your-server-ip-or-hostname>" \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
openssl x509 -req -days 365 -in server.csr \
  -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
 
sudo ./bedrud install --tls --cert server.crt --key server.key --ip YOUR_SERVER_IP

CA zu Client-Trust-Stores hinzufügen

Verteilen Sie ca.crt an alle Client-Rechner:

Windows

certmgr.msc  # Right-click ca.crt → Install Certificate → Trusted Root CAs

macOS

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

Linux (Debian/Ubuntu)

sudo cp ca.crt /usr/local/share/ca-certificates/bedrud-ca.crt
sudo update-ca-certificates

Linux (Arch/Fedora)

sudo cp ca.crt /etc/pki/ca-trust/source/anchors/bedrud-ca.crt
sudo update-ca-trust

Starten Sie die Browser neu und öffnen Sie dann https://YOUR_SERVER_IP (ersetzen Sie dies durch die tatsächliche IP-Adresse des Servers, z. B. 192.168.1.100). Nach dem Neustart wird das Zertifikat als vertrauenswürdig eingestuft und Kamera-/Mikrofonzugriff funktioniert ohne Warnungen.

Fehlerbehebung

ProblemLösung
Browser warnt weiterhin vor nicht vertrauenswürdigem ZertifikatBrowser-Cache leeren, Browser nach CA-Installation neu starten
Kamera/Mikrofon blockiertPrüfen Sie, ob sich die CA in den Vertrauenswürdigen Stammzertifikaten befindet, nicht als Zwischenzertifikat
Zertifikat abgelaufenFühren Sie sudo bedrud cert renew zur Neuerstellung aus (automatische Erneuerung alle 24h um 09:00)
CN-KonfliktModerne Browser ignorieren das CN-Feld — SAN ist maßgeblich. Verwenden Sie die integrierte Zertifikatserstellung des Installers (empfohlen) oder fügen Sie -addext 'subjectAltName=...' zum openssl-Befehl hinzu
Fehlende SANsModerne Browser ignorieren das CN-Feld. Verwenden Sie die integrierte Zertifikatserstellung des Installers (empfohlen) oder fügen Sie -addext 'subjectAltName=...' zum openssl-Befehl hinzu

Siehe auch