Skip to content

Conversation

@SSHNuke0
Copy link

Problème résolu

L'authentification LDAP avec STARTTLS échoue systématiquement avec les certificats auto-signés (erreur "start TLS KO"). Cela rend impossible l'utilisation de Jeedom avec Samba4 AD qui utilise par défaut des certificats auto-signés.

Fixes #3136

Solution proposée

Ajout d'une checkbox "Autoriser certificats auto-signés" dans la configuration LDAP qui désactive la vérification des certificats SSL lorsqu'elle est cochée.

Modifications apportées

1. core/class/user.class.php - Deux fonctions modifiées

  • user::connect() : Configuration SSL avant ldap_connect() et ldap_start_tls()
  • user::connectToLDAP() : Configuration SSL avant ldap_connect() et ldap_start_tls()

Les options SSL sont configurées de manière conditionnelle selon la valeur de ldap:allow_selfsigned :

  • Si activé : LDAPTLS_REQCERT=never et LDAP_OPT_X_TLS_REQUIRE_CERT = LDAP_OPT_X_TLS_NEVER
  • Si désactivé : LDAPTLS_REQCERT=demand et LDAP_OPT_X_TLS_REQUIRE_CERT = LDAP_OPT_X_TLS_DEMAND

2. desktop/php/administration.php

  • Ajout d'une checkbox après l'option TLS (ligne ~1611)
  • Clé de configuration : ldap:allow_selfsigned
  • Par défaut décochée (comportement actuel conservé)
  • Tooltip explicatif pour guider l'utilisateur

Comportement

Checkbox décochée (défaut) : Vérification stricte des certificats SSL

  • Comportement actuel de Jeedom conservé
  • Sécurité maximale

Checkbox cochée : Accepte les certificats auto-signés

  • Requis pour Samba4 AD avec certificats auto-signés
  • Permet STARTTLS avec certificats non valides
  • Désactive la vérification SSL (LDAPTLS_REQCERT=never)

Tests effectués

Testé en production avec :

  • Samba4 Active Directory (certificats auto-signés)
  • STARTTLS sur port 389
  • Authentification de plusieurs utilisateurs AD
  • Checkbox décochée : STARTTLS échoue comme attendu (comportement actuel)
  • Checkbox cochée : STARTTLS fonctionne correctement

Configuration testée :

ldap:host = ldap://dc.domain.local
ldap:port = 389
ldap:tls = 1 (STARTTLS)
ldap:allow_selfsigned = 1
ldap:samba4 = 1
ldap:domain = domain.local

Compatibilité

  • Rétrocompatible à 100% (comportement par défaut strictement inchangé)
  • PHP 7.4, 8.0, 8.1, 8.2, 8.3
  • Tous serveurs LDAP (OpenLDAP, Samba4 AD, Microsoft AD, etc.)
  • Aucun changement cassant
  • Aucune dépendance ajoutée

… LDAP/AD

Ajout d'une option configurable (checkbox dans l'interface) pour
permettre l'utilisation de certificats auto-signés avec STARTTLS.

- Nouvelle checkbox dans Configuration > LDAP
- Configuration des options LDAP_OPT_X_TLS_REQUIRE_CERT
- Appliqué dans user::connect() et user::connectToLDAP()
- Sécurisé par défaut (checkbox décochée = vérification stricte)
- Requis pour environnements Samba4 AD avec certificats auto-signés

Fixes jeedom#3136
@SSHNuke0 SSHNuke0 force-pushed the 3136-ldap-selfsigned-certificates branch from d87c04f to d0fc755 Compare November 12, 2025 00:10
@zoic21 zoic21 added this to the 4.6 milestone Nov 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Support des certificats SSL auto-signés pour l'authentification LDAP/AD

2 participants