From 699353910f88c8f700be805b00a5316a41011b5f Mon Sep 17 00:00:00 2001 From: Johan LEROY Date: Fri, 19 Jun 2026 16:09:16 +0200 Subject: [PATCH] =?UTF-8?q?ci:=20corrige=20le=20d=C3=A9ploiement=20FTPS=20?= =?UTF-8?q?(CN=20mismatch=20=E2=86=92=20ssl:check-hostname=20no)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cert Plesk valide (CA) mais CN != FTP_HOST. On conserve le chiffrement forcé et la validation de chaîne, on tolère le nom d'hôte (choix validé par l'utilisateur). --- .gitea/workflows/prod.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/prod.yml b/.gitea/workflows/prod.yml index 6c0e01d..91e1b98 100644 --- a/.gitea/workflows/prod.yml +++ b/.gitea/workflows/prod.yml @@ -32,13 +32,16 @@ jobs: - name: Deploy via FTPS (Plesk) run: | apt-get update && apt-get install -y lftp - # FTPS forcé (jamais de fallback en clair) + vérification du certificat (CA système). - # Si le déploiement échoue sur une erreur de certificat, c'est que le cert FTP ne - # correspond pas à FTP_HOST → préférer SFTP (clé SSH) plutôt que de désactiver la vérif. + # FTPS forcé (jamais de transport en clair) + validation du certificat par la CA. + # ssl:check-hostname no : le cert Plesk est valide (signé CA) mais son CN ne correspond + # pas à FTP_HOST (alias/IP) → on garde la validation de chaîne, on tolère le nom d'hôte. + # Bien plus sûr que `verify-certificate no` (qui accepterait n'importe quel cert). + # Alternative sans compromis : SFTP par clé SSH (sftp://) — à câbler si souhaité. lftp -e " set ftp:ssl-force true; set ftp:ssl-protect-data true; set ssl:verify-certificate yes; + set ssl:check-hostname no; open ${{ secrets.FTP_HOST }}; user ${{ secrets.FTP_USER }} ${{ secrets.FTP_PASSWORD }}; mirror --reverse --delete --verbose dist/ ${{ secrets.FTP_TARGET_DIR }};