Bedrud Documentation

Pour les réseaux isolés - pas de domaine public, pas d’accès internet sortant, connectivité restreinte.

Les navigateurs nécessitent un HTTPS de confiance pour la caméra/micro via WebRTC. Les certificats auto-signés fonctionnent mais affichent des avertissements. Pour une configuration propre, générez une autorité de certification privée et distribuez-la aux clients.

Générer une autorité de certification privée et un certificat de serveur

Les navigateurs modernes exigent des Subject Alternative Names (SANs) dans les certificats. L’installateur gère cela automatiquement.

Option 1 : Utiliser l’installateur (recommandé)

La commande bedrud install génère des certificats auto-signés avec les SANs appropriés pour les IPs et domaines donnés :

sudo bedrud install --tls --ip VOTRE_ADRESSE_IP_SERVEUR

Pour inclure également un nom de domaine :

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

Option 2 : Génération manuelle de certificats

Si la génération intégrée de l’installateur ne correspond pas à votre flux de travail, ajoutez les flags -addext aux commandes openssl :

#### 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=<votre-adresse-ip-ou-nom-d'hôte>" \
  -addext "subjectAltName=IP:VOTRE_ADRESSE_IP_SERVEUR"
openssl x509 -req -days 1825 -in server.csr \
  -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt \
  -addext "subjectAltName=IP:VOTRE_ADRESSE_IP_SERVEUR"
 
sudo ./bedrud install --tls --cert server.crt --key server.key --ip VOTRE_ADRESSE_IP_SERVEUR

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=<votre-adresse-ip-ou-nom-d'hôte>" \
  -addext "subjectAltName=IP:VOTRE_ADRESSE_IP_SERVEUR"
openssl x509 -req -days 1825 -in server.csr \
  -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt \
  -addext "subjectAltName=IP:VOTRE_ADRESSE_IP_SERVEUR"
 
sudo ./bedrud install --tls --cert server.crt --key server.key --ip VOTRE_ADRESSE_IP_SERVEUR

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=<votre-adresse-ip-ou-nom-d'hôte>" \
  -addext "subjectAltName=IP:VOTRE_ADRESSE_IP_SERVEUR"
openssl x509 -req -days 365 -in server.csr \
  -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt \
  -addext "subjectAltName=IP:VOTRE_ADRESSE_IP_SERVEUR"
 
sudo ./bedrud install --tls --cert server.crt --key server.key --ip VOTRE_ADRESSE_IP_SERVEUR

Ajouter l’AC aux magasins de confiance des clients

Distribuez ca.crt à toutes les machines clientes :

Windows

certmgr.msc  # Clic droit sur ca.crt → Installer le certificat → AC racines de confiance

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

Redémarrez les navigateurs, puis ouvrez https://VOTRE_ADRESSE_IP_SERVEUR (remplacez par l’adresse IP réelle du serveur, par ex. 192.168.1.100). Après redémarrage, le certificat sera de confiance et l’accès à la caméra/microphone fonctionnera sans avertissements.

Dépannage

ProblèmeSolution
Le navigateur avertit toujours que le certificat n’est pas de confianceVidez le cache du navigateur, redémarrez le navigateur après l’installation de l’AC
Caméra/micro bloquésVérifiez que l’AC est dans les AC racines de confiance, pas intermédiaire
Certificat expiréExécutez sudo bedrud cert renew pour régénérer (renouvellement automatique toutes les 24h à 09:00)
Inadéquation CNLes navigateurs modernes ignorent le champ CN — SAN est l’autorité. Utilisez la génération intégrée de certificats de l’installateur (recommandé) ou ajoutez -addext 'subjectAltName=...' à la commande openssl
SANs manquantsLes navigateurs modernes ignorent le champ CN. Utilisez la génération intégrée de certificats de l’installateur (recommandé) ou ajoutez -addext 'subjectAltName=...' à la commande openssl

Voir aussi