[Basic] Communication FTP incompatible avec TLS 1.2
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
- NOOuvel adepte
- Messages : 24
- Inscription : 06 févr. 2011 21:00
[Basic] Communication FTP incompatible avec TLS 1.2
Bonjour,
Depuis que mon hébergeur a activé le protocole de sécurité TLS 1.2, il est impossible d'échanger des fichiers via un lien ftp généré par une macro commande.
Du coup, les commandes de type storetourl (lorsque l'URL est une adresse ftp, soit une destination sur un serveur distant) ne fonctionne plus.
Notez que je me suis assuré d'avoir la dernière version JAVA en 32 bits, laquelle, semble-t-il, devait être compatible avec le protocole TLS 1.2. Au cas où....
J'utilise la dernière version d'Ooo sur différents OS. J'ai aussi fait un essai avec Libre Office. Le problème est constant.
Quelqu'un a-t-il expérimenté le même problème? A-t-on trouvé une solution ou une piste de solution?
Merci.
Depuis que mon hébergeur a activé le protocole de sécurité TLS 1.2, il est impossible d'échanger des fichiers via un lien ftp généré par une macro commande.
Du coup, les commandes de type storetourl (lorsque l'URL est une adresse ftp, soit une destination sur un serveur distant) ne fonctionne plus.
Notez que je me suis assuré d'avoir la dernière version JAVA en 32 bits, laquelle, semble-t-il, devait être compatible avec le protocole TLS 1.2. Au cas où....
J'utilise la dernière version d'Ooo sur différents OS. J'ai aussi fait un essai avec Libre Office. Le problème est constant.
Quelqu'un a-t-il expérimenté le même problème? A-t-on trouvé une solution ou une piste de solution?
Merci.
Dernière modification par micmac le 15 août 2018 17:43, modifié 2 fois.
Raison : Titre : [Basic] remplace [basic]
Raison : Titre : [Basic] remplace [basic]
Apache Open Office Version 4.1.5, Linux Ubuntu, Windows 7 et 10
-
- PassiOOnné
- Messages : 629
- Inscription : 09 août 2017 22:15
Re: [Issue] [url] Communication FTP incompatible avec TLS 1.
hello,
pour que l'on puisse vérifier ce que tu nous dis, il faudrait que tu nous donnes l'adresse d'un serveur ftp uniquement accessible en TLS 1.2.
En tout cas si cela s'avère exact, il a moyen de s'en sortir avec une macro en python grâce à l'excellent module ftplib.
Voici un exemple de macro en python dans writer qui va chercher un fichier sur un serveur ftp en TLS 1.2, et qui l'écrit dans un répertoire. Pendant le transfert le status est écrit dans la barre de status de writer. Le serveur FTP utilisé est un serveur de test qui accepte tous les types de ftp (ex : TLS 1.2).
La macro fonctionne dans writer avec LibreOffice 5.4.4.2 sous Windows 10
Ami calmant, J.P
pour que l'on puisse vérifier ce que tu nous dis, il faudrait que tu nous donnes l'adresse d'un serveur ftp uniquement accessible en TLS 1.2.
En tout cas si cela s'avère exact, il a moyen de s'en sortir avec une macro en python grâce à l'excellent module ftplib.
Voici un exemple de macro en python dans writer qui va chercher un fichier sur un serveur ftp en TLS 1.2, et qui l'écrit dans un répertoire. Pendant le transfert le status est écrit dans la barre de status de writer. Le serveur FTP utilisé est un serveur de test qui accepte tous les types de ftp (ex : TLS 1.2).
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import uno
import ssl
from ftplib import FTP_TLS
def recupFtpTLS():
odoc = XSCRIPTCONTEXT.getDocument()
ostatusbar = odoc.CurrentController.StatusIndicator
ostatusbar.reset
myftps = FTP_TLS()
myftps.set_debuglevel(1)
res = myftps.connect('test.rebex.net', 21, 5);
ostatusbar.start("ftp connect : " + res,0)
# ssl version - https://docs.python.org/3/library/ssl.html
#myftps.ssl_version = ssl.PROTOCOL_SSLv2
#myftps.ssl_version = ssl.PROTOCOL_SSLv3
#myftps.ssl_version = ssl.PROTOCOL_TLSv1
#myftps.ssl_version = ssl.PROTOCOL_TLSv1_1
myftps.ssl_version = ssl.PROTOCOL_TLSv1_2
myftps.login('demo', 'password')
#myftps.retrlines('LIST')
filename = 'readme.txt'
file = open('M:/temp/' + filename, 'wb')
res = myftps.retrbinary('RETR %s' % filename, file.write)
ostatusbar.start("ftp recup fichier : " + res,0)
myftps.close()
file.close()
g_exportedScripts = recupFtpTLS,
Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
-
- RespOOnsable forum
- Messages : 9256
- Inscription : 28 août 2010 08:45
Re: [Issue] [url] Communication FTP incompatible avec TLS 1.
Bonjour,
Merci de ne pas inventer votre propre balisage.
Merci de ne pas inventer votre propre balisage.
- La balise [Issue] s'utilise dans un cas très particulier : https://forum.openoffice.org/fr/forum/v ... f=1&t=3299
- Relisez le lien indiqué dans le bandeau rouge en haut de la page de la présente section et précisez l'application utilisée.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
-
- NOOuvel adepte
- Messages : 24
- Inscription : 06 févr. 2011 21:00
Re: [basic] Communication FTP incompatible avec TLS 1.2
Pour MicMac
Merci de me rappeler les règles de balisage. Je vais faire la correction.
Pour Jurassic Park (l'ami calmant)
J'avoue ne pas être familier avec la programmation en Python mais vous venez sans doute de me motiver à y jeter un coup d’œil pour voir comment il pourrait être possible de l'intégrer au code actuel. De mon côté, j'ai également trouvé une alternative opérationnelle en appelant le programme externe FreeFileSync et un fichier paramétrage qui s'exécute automatique. Mais ça ne fait pas la même chose puisque la synchronisation ne permet pas de cibler certains fichiers.... Il me faut donc revoir la logique de programmation puisqu'elle est nettement différente.
Avec votre permission, je vais simplifier mon code pour en faire un exemple simple et vous le faire parvenir en privé
Merci pour votre aide
Merci de me rappeler les règles de balisage. Je vais faire la correction.
Pour Jurassic Park (l'ami calmant)
J'avoue ne pas être familier avec la programmation en Python mais vous venez sans doute de me motiver à y jeter un coup d’œil pour voir comment il pourrait être possible de l'intégrer au code actuel. De mon côté, j'ai également trouvé une alternative opérationnelle en appelant le programme externe FreeFileSync et un fichier paramétrage qui s'exécute automatique. Mais ça ne fait pas la même chose puisque la synchronisation ne permet pas de cibler certains fichiers.... Il me faut donc revoir la logique de programmation puisqu'elle est nettement différente.
Avec votre permission, je vais simplifier mon code pour en faire un exemple simple et vous le faire parvenir en privé
Merci pour votre aide
Apache Open Office Version 4.1.5, Linux Ubuntu, Windows 7 et 10
-
- RespOOnsable forum
- Messages : 9256
- Inscription : 28 août 2010 08:45
Re: [Basic] Communication FTP incompatible avec TLS 1.2
Bonjour,
Les problèmes et la recherche de solutions s'exposent sur le forum et non par messages privés.[b][color=#404080]Finov[/color][/b] a écrit :un exemple simple et vous le faire parvenir en privé
- D'abord parce que d'autres personnes peuvent être intéressées par les réponses apportées, que ce soit dans l'immédiat ou plus tard en faisant une recherche dans ce forum ;
- Ensuite parce que vous restreignez le taux de réponses à une seule personne, alors que d'autres pourraient peut-être vous proposer de meilleures solutions.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
-
- NOOuvel adepte
- Messages : 24
- Inscription : 06 févr. 2011 21:00
Re: [Basic] Communication FTP incompatible avec TLS 1.2
MicMac: Je partage en tout point votre point de vue et il était déjà prévu de partager la solution... si on la trouve. J'ai cependant une certaine réticence à partager les codes sur le forum puisqu'il s'agit d'un hébergement sur serveur partagé. Je vais voir ce que je peux faire car, effectivement, on se prive de la force de la communauté. Et j'en suis parfaitement conscient. Merci encore pour cette remarque pertinente et très constructive
Apache Open Office Version 4.1.5, Linux Ubuntu, Windows 7 et 10
-
- NOOuvel adepte
- Messages : 24
- Inscription : 06 févr. 2011 21:00
Re: [Basic] Communication FTP incompatible avec TLS 1.2
Voici un code à exécuter dans un fichier dont l'extension est ods (un fichier calc).
Cette macro fonctionnait très bien avant la mise en vigueur exclusive du protocole de sécurité TLS 1.2.
Notez que la fonction Dir (interrogation d'un dossier contenant des fichiers) ne fonctionne plus non plus avec une adresse FTP. Il semble que ces fonctions sont toutes lancées de façon non encryptée, ce que refuse maintenant le serveur.
Code : Tout sélectionner
Sub ArchiverSurServeurDistant
Dim sFileName As String
Dim sPath As String
Dim sSaveToURL as string
Dim oDoc as Object
oDoc = thisComponent
sSaveToURL = ConvertToURL("ftp://DossierTest%40pharmaciemagog.com:BeMyGuest@ftp.pharmaciemagog.com/Test.ods")
oDoc.storeToUrl(sSaveToURL, Array)
end Sub
Notez que la fonction Dir (interrogation d'un dossier contenant des fichiers) ne fonctionne plus non plus avec une adresse FTP. Il semble que ces fonctions sont toutes lancées de façon non encryptée, ce que refuse maintenant le serveur.
Apache Open Office Version 4.1.5, Linux Ubuntu, Windows 7 et 10
-
- PassiOOnné
- Messages : 629
- Inscription : 09 août 2017 22:15
Re: [Basic] Communication FTP incompatible avec TLS 1.2
hello,
voici un exemple de fonction qui peut faire l'équivalent en python :
la fonction :
1 - se connecte en TLS 1.2 au site FTP avec un login , mot de passe
2 - on ouvre le document courant en lecture seule
3 - on envoie le fichier au site FTP avec comme nom le nom du fichier sans le chemin
4 - on récupère le status
on peut inclure la fonction dans un script en python ou la mettre dans un module python que l'on pourra appeler à partir d'un script en basic par exemple avec l'extension easydev :
Ami calmant, J.P
voici un exemple de fonction qui peut faire l'équivalent en python :
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import uno
import os
import ssl
import io
from ftplib import FTP_TLS
def envoiFtpTLS(host,user,pwd):
odoc = XSCRIPTCONTEXT.getDocument()
ostatusbar = odoc.CurrentController.StatusIndicator
ostatusbar.reset
myftps = FTP_TLS()
myftps.set_debuglevel(1)
res = myftps.connect(host, 21, 5);
ostatusbar.start("ftp connection : " + res,0)
myftps.ssl_version = ssl.PROTOCOL_TLSv1_2
myftps.login(user,pwd)
filename = uno.fileUrlToSystemPath(odoc.getURL())
file = open(filename, 'rb')
res = myftps.storbinary('STOR %s' % os.path.basename(filename),file )
ostatusbar.start("ftp envoi fichier : " + res,0)
myftps.close()
file.close()
return res
1 - se connecte en TLS 1.2 au site FTP avec un login , mot de passe
2 - on ouvre le document courant en lecture seule
3 - on envoie le fichier au site FTP avec comme nom le nom du fichier sans le chemin
4 - on récupère le status
on peut inclure la fonction dans un script en python ou la mettre dans un module python que l'on pourra appeler à partir d'un script en basic par exemple avec l'extension easydev :
Code : Tout sélectionner
Sub EnvoiFTPS()
util = createUnoService("org.universolibre.EasyDev")
macro = createUnoStruct("org.universolibre.EasyDev.Macro")
macro.Library = "MonModulePython"
macro.Name = "envoiFtpTLS"
macro.Thread = False
'envoi du document courant vers le site FTP
res = util.callMacro(macro, Array("ftp.monsite.com", _
"DossierTest@ftp.monsite.com", _
"Maux2Paße"))
'on affiche le status de fin de transfert
util.msgbox(res)
End Sub
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04