Nouvelle version du client Windows pour UpdatEngine (non officiel)

263 views
Skip to first unread message

Damien Guillem

unread,
Apr 28, 2018, 11:41:40 AM4/28/18
to updatengine-fr
Bonjour,

Je vous publie aujourd'hui le Client UpdatEngine 2.4.9.4 dans la suite ce qui à été fait ici:
https://groups.google.com/forum/#!topic/updatengine-fr/OUgp2TVFctQ

La version publiée ce jour apporte quelques corrections supplémentaires au niveau des problèmes d'encodage.

Vous pouvez la télécharger ici (de même que les futures versions s'il y en a) :
https://github.com/dam09fr/updatengine-client/releases

Je vous invite également à consulter les sources suivantes pour l'installation d'un serveur UpdatEngine qui contiennent des modifications du code pouvant vous intéresser (fix css pour Chrome et amélioration de la comparaison des numéros de version) :
https://github.com/dam09fr/updatengine-server/tree/dam09fr-dev

J'attends vos retours avec impatience.
Damien

allfre...@gmail.com

unread,
Jun 26, 2018, 5:51:36 AM6/26/18
to updatengine-fr
Bonjour,

D'abord, merci beaucoup pour le travail effectué.

Je rencontre un problème avec cette nouvelle version de client. Les remontées d'inventaire se font correctement en https mais pas le déploiement d'applications. Problème sur le download qui se fait en HTTP (ligne 6) et pas en HTTPS (comme indiqué).
L'erreur est reproduite sur plusieurs machines Windows 7 32 et 64 Bits

Voilà ce qui apparait dans la console en exécution manuelle:

C:\Users\Admin\Desktop>updatengine-client -i -s https://192.168.0.100:1979
2018-06-26-11:30:06
Inventory built
Inventory sent to https://192.168.0.100:1979/post/
2018-06-26-11:30:07
Package: LibreOffice-I-5.3.7.2
http://192.168.0.100:1979/media/package-file/7lteqTuV/LibreOffice_5.3.7_Win_x86.msi
c:\users\admin\appdata\local\temp/updatengine/LibreOffice_5.3.7_Win_x86.msi
1a4107ac26f0baf7c7ee622def586c2b
2018-06-26-11:30:07
Error when downloading: c:\users\admin\appdata\local\temp/updatengine/LibreOffice_5.3.7_Win_x86.msi
Error detected when launching download_action
Error on download_action function

Merci par avance de votre retour

Noël Martinon

unread,
Jun 26, 2018, 7:25:22 AM6/26/18
to updatengine-fr
Bonjour,

J'ai l'impression que c'est plutôt coté serveur car c'est lui qui indique le lien de téléchargement au client :
dans settings.py vous avez bien PROJECT_URL = 'https://192.168.0.100:1979' ?

allfre...@gmail.com

unread,
Jun 26, 2018, 7:42:38 AM6/26/18
to updatengine-fr

Effectivement, erreur de ma part.
Je vous remercie.
Je continue les tests sur clients Windows 7/10 32 et 64 Bits.
Serveur 2.1.2.RC1. D'ailleurs, comme il s'agit d'une version de mise à jours importante (Django 1.6.2->1.11), cela ne devrait pas plutôt être 2.2RC1. Oui je sais je chipotte...

En tout cas bravo pour le travail.

Merci encore

Noël Martinon

unread,
Jun 27, 2018, 7:19:47 AM6/27/18
to updatengine-fr
Content que ce n'était que ça.
J'avoue que 2.1.2-RC1 ne me convenait pas vraiment comme numéro de version. Je viens de renommer en 2.2-RC1 et d'ajouter les instructions pour l'update.
Pour l'instant c'est mineur puisqu'il n'y a que la version de changé mais c'est plus propre !

aldr...@gmail.com

unread,
Jul 13, 2018, 8:58:27 AM7/13/18
to updatengine-fr
Bonjour,
J'ai un soucis avec l'installateur qui va créer automatique la tâche planifiée "updatengine". Cette tâche est créée en indiquant le chemin du certificat:

"C:\Program Files (x86)\UpdatEngine client\updatengine-client.exe" -i -n -s https://192.168.1.100:1979 -m 30 -c "C:\Program Files (x86)\UpdatEngine client\cacert.pem" -o "C:\Program Files (x86)\UpdatEngine client\updatengine-client.log"

Hors cela pose des problèmes, voilà le message de retour quand cette commande est exécuter en console:

2018-07-13-14:30:22
Inventory built
Error in check_ssl (ssl.get_server_certificate function)
Error on send_inventory process
wait for connexion with passphrase bcaae62bdf00c19b6d9adff0fcb2ba1e or 2018-07-13 15:00:22.948000

Si j'enlève maintenant dans la tâche planifiée l'option de certificat -c "C:\Program Files (x86)\UpdatEngine client\cacert.pem", cela se passe très bien, il y a bien les remontées d'inventaire. Dans ce cas j'imagine que le client utilise automatiquement le certificat cacert.pem non?
Je précise que j'utilise un certificat serveur signé par une autorité de certification reconnue.

Merci par avance de votre retour.
Bonne journée

aldr...@gmail.com

unread,
Jul 16, 2018, 9:33:48 AM7/16/18
to updatengine-fr
Bonjour,
Pour faire suite, en remplaçant l'adresse du serveur par un FQDN (updatengine.serveur.domain.fr) j'obtiens les mêmes résultats.

Voilà ce que j'obtiens dans les logs du client updatengine:

INFO:root:Start: 2018-07-16-15:26:07
INFO:root:Inventory built
ERROR:root:Error on send_inventory process
Traceback (most recent call last):
  File "updatengine-client.py", line 155, in main
  File "C:\Users\LMV\Documents\GitHub\updatengine-client\Windows\uecommunication.py", line 202, in send_inventory
  File "C:\Users\LMV\Documents\GitHub\updatengine-client\Windows\uecommunication.py", line 71, in send_xml
  File "C:\Users\LMV\Documents\GitHub\updatengine-client\Windows\uecommunication.py", line 43, in check_ssl
SSLError: ('SSL cert of Host:updatengine.serveur.domain.fr Port:10000 is invalid',)
INFO:root:End: 2018-07-16-15:26:08

J'ai modifié ici le nom et le port du serveur pour raison de confidentialité.
Je suis assez dubitatif.

Noël Martinon

unread,
Jul 21, 2018, 9:57:03 AM7/21/18
to updatengine-fr
Bonjour,

J'ai parcouru le code du client et voilà ce qu'il en ressort :

L'erreur rencontrée est liée au certificat et non pas au client updatengine.
En fait, le certificat renvoyé par le serveur n'est pas validé par le certificat d'autorité "cacert.pem".

UpdatEngine-client fonctionne ainsi :
- Si un fichier 'pem' est passé en argument (option -c) alors un test de validation de certificat est réalisé pour être certain que le client parle bien à un serveur qu'il connaît. Si ce n'est pas validé (=SSL: CERTIFICATE_VERIFY_FAILED) alors le processus s'arrête là et retourne l'erreur "Error in check_ssl".
- Si on ne précise pas de fichier 'pem' alors la connexion se fait quand même sans utiliser "cacert.pem" mais en se servant toutefois du protocole SSL pour échanger de façon sûre. Les certificats auto-signés sont automatiquement acceptés.

Dans le cadre d'un serveur UE en https, le certificat passé en argument n'est donc pas obligatoire mais il reste recommandé.
Voilà donc pourquoi ça fonctionne sans l'option '-c'.

Pour finir, je vous invite dans un premier temps à comparer le contenu du 'pem' et du certificat retourné par le serveur.
- On peut récupérer celui du serveur avec firefox par exemple en ouvrant la page d'accueil du serveur https://192.168.1.100:1979 puis Outils->informations sur la page->Sécurité->Afficher le certificat->Détails->Exporter (Certificat PEM)
- Comparer le contenu textuel entre -----BEGIN CERTIFICATE----- et -----END CERTIFICATE-----

Et là il me revient en tête des discussions vues je ne sais plus où concernant un accès sécurisé et restreint à un serveur UE 'public' ... une amélioration à étudier.

Ensuite, s'il le faut, on changera de fil car là c'est plutôt UE-client et non SSL.

Noël

Walter Nicot

unread,
Jul 21, 2018, 12:27:03 PM7/21/18
to updatengine-fr
Bonjour,

2 solutions pour le certificat :
  1. récupérer le certificat avec openssl : openssl s_client -showcerts -connect {HOSTNAME}:{PORT} </dev/null 2>/dev/null| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
  2. Prendre le fichier crt et le renommer en pem; si il commence par BEGIN CERTIFICATE et fini par END CERTIFICATE; sinon il faudra trouver la commande openssl pour la conversion.
Walter
Reply all
Reply to author
Forward
0 new messages