fix(cert-server): accepte les noms de fichiers au format DN à l'import

La whitelist safe_name rejetait « , » et « = », donc les fichiers nommés
d'après un DN (ex: « CN=gitlab.test.com, OU=..., O=Thales.p7b ») étaient
refusés. Ajout de , = + * ( ) à la liste autorisée (utile aussi pour les
certificats wildcard et multivalués). Protection anti-traversal inchangée
(/, \, .. et noms vides toujours bloqués).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Guillaume DENIS 2026-07-08 15:57:49 +02:00
parent 7bdcd9193a
commit f3c490322e

View file

@ -23,7 +23,7 @@ ROOT = os.path.dirname(SCRIPT_DIR) # racine projet
WORK = os.path.join(SCRIPT_DIR, "LISTS_ALL_CERT") # dossier de travail (disque) WORK = os.path.join(SCRIPT_DIR, "LISTS_ALL_CERT") # dossier de travail (disque)
ARCH = os.path.join(WORK, "archives") ARCH = os.path.join(WORK, "archives")
SAFE = re.compile(r"^[A-Za-z0-9._@\- ]+$") # noms de dossier/fichier autorisés SAFE = re.compile(r"^[A-Za-z0-9._@\-,=+*() ]+$") # noms de dossier/fichier autorisés (incl. DN : « CN=x, OU=y »)
def safe_name(n): def safe_name(n):