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 }};