Vous n'êtes pas identifié.
J'ai souhaite utiliser cron sur un de mes serveurs debian pour appeler une page web sur un autre serveur web et j'ai cherche à créer un srcipt " /etc/cron.minimal/appel_page_web.sh "
La page web que je souhaite appeler "http://www.mon_serveur_web.com/mon-repertoire/page.php " est placée dans un répertoire qui est protégé par un fichier .htaccess pour éviter que n'importe qui appel se script!
En cherchant sur le net j'ai trouvé une commande qui s'approche fortement à ce que je souhaite faire.
Voici le contenu de mon fichier "appel_page_web.sh":
#!/bin/sh lynx -auth user:passwd -source "http://www.mon_serveur_web.com/mon-repertoire/page.php" > /dev/null
hors sur mon serveur debian je souhaite, si c'est possible, éviter à installer "le navigateur lynx".
Existe t'il une commande pour remplacer lynx, par une autre commande éventuellement par "open" ou "curl"?
La contrainte c'est que je doit passer par un login et un mot de passe pour accèder à la page web "http://www.mon_serveur_web.com/mon-repertoire/page.php".
Merci d'avance pour votre aide.
Dernière modification par Didier100 (08 Jul 2009 17:11:49)
Hors ligne
J'ai trouvé une alternative ...
#!/bin/sh curl -u user:passwd http://www.mon_serveur_web.com/mon-repertoire/page.php -d '' >/dev/null
mais il faut installer cUrl ...
d'autres idées?
Dernière modification par Didier100 (08 Jul 2009 17:12:17)
Hors ligne
wget ?
Hors ligne
Yes we can ..... Merci pour cette information [GO]Skywalker13.....
ce qui donne
#!/bin/sh wget --http-user=user --http-password='password' http://www.mon_serveur_web.com/mon-repertoire/page.php > /dev/null
En plus il y à rien à installer!
Dernière modification par Didier100 (08 Jul 2009 22:08:48)
Hors ligne
Voici mon script que je viens de tester et qui fonctionne bien
#!/bin/bash wget --http-user=test --http-password='mot_de_passe' -O /home/test/test.txt http://www.test1.com/test/import_script.php?a1=test
la commande -O est équivalent à "enregistrer sous"
Par contre je me pose une nouvelle question ...
Je souhaite "en plus" transmettre les données de manière sécurisé via https .
Hors actuellement je reçoit ses messages si je remplace le http par un https:
sd-xxxxx:/home/test/www# ./test.sh
--2009-07-10 10:12:04-- https://www.test1.com/test/import_script.php?a1=test
Résolution de www.test1.com... 86.65.177.122
Connexion vers www.test1.com|86.65.xxx.xxx|:443...connecté.
ERREUR: cannot verify www.test1.com's certificate, issued by `/C=FR/ST=IleDeFrance/L=75000 Paris/O=Nom societe/OU=Nom societe/CN=Nom societe/emailAddress=monmail@wanadoo.fr':
Self-signed certificate encountered.
ERREUR: le nom du certificat commun `NomCertificat' ne concorde par avec le nom de l'hôte demandé `www.test1.com'.
Pour établir une connexion à www.test1.com non sécuritaire, utiliser `--no-check-certificate'.
Incapable d'établir une connexion SSL.
sd-xxxxx:/home/test/www#
J'ai donc ajouté --no-check-certificate à ma commande ce que reviens à :
#!/bin/bash wget --http-user=test --http-password='pass' --no-check-certificate -O /home/test/test.txt https://www.test1.com/test/import_script.php?a1=test
et sa marche super bien ..... c'est simplement un peut plus lent
Dernière modification par Didier100 (10 Jul 2009 10:37:39)
Hors ligne
le certificat est auto-signé par une autorité non reconnue.. donc il est forcément invalide..
Hors ligne
OUI [GO]Skywalker13,
Je sais que c'est un certificat officiellement non validé car c'est moi qui le généré et "auto signé" .
L'utilisation de certificats auto-signés apporte une certaine sécurité dans l'accès aux données d'un site Web. Cependant il ne protège pas de toutes les intrusions, puisqu'aucune autorité "de confiance" n'a validé le certificat.
Hmmmm .... par contre comme je désactivé la certification avec la commande --no-check-certificate n'est il pas possible d'importer le certificat sur le serveur, celui qui exécute le petit script "bash", pour que je puisse réactiver la vérification?
Quand je me connecte en https via un navigateur, par exemple firefox, sur mon serveur web je doit répondre à plusieurs questions pour valider mon certificat "auto signé" ... Puis je suis tranquille si j'accepte et enregistre mon certificat.
Par contre sur le serveur sur le quel est placée mon script avec wget ... je ne sais pas comment faire pour enregistrer le certificat ...???
Dernière modification par Didier100 (10 Jul 2009 12:08:23)
Hors ligne
Hello,
Tu peux copier le certificat dans le chemin des certificats système d'openssl (dépend de la distro, chez moi c'est /etc/ssl/certs). Pour qu'il le trouve, le fichier doit avoir un nom spécifique qui correspond a l'empreinte du certificat, tu peux soit l'appeler directement comme ça, soit faire un symlink.
Commence par récupérer le certificat (.pem) sur le serveur https, puis utilise la commande suivante pour trouver le hash:
$ openssl x509 -noout -hash <certificat.pem 12345678
une fois que tu as obtenu le hash (8 caractères héxadécimaux), copie le certificat avec le bon nom:
cp certificat.pem /etc/ssl/certs/12345678.0
Et ca devrait jouer !
Hors ligne
MERCI BOFH
Je vais essayer ça ....
A tout ....
Hors ligne