Tester l'existance d'un fichier distant

Bonjour,

J’ai trouvé sur plusieurs sites la commande curl -sfI qui permet de tester si un fichier existe.

Je possède deux serveurs Debian 6 :
Serveur 1 : J’ai fait ceci :
if curl -sfI "https://X.X.X.X/.status/var/status.log"
then
echo "fichier existant"
else
echo "fichier non existant"
fi

Sur le serveur 2 que j’interroge, le fichier existe.
Si je tape dans mon navigateur l’URL cela me télécharge bien le fichier mais cela me met une erreur de certificat (c’est un certificat autosigné donc non reconnu officiellement : normal quoi)

J’ai testé des commandes :
curl -sfI “https://X.X.X.X/.status/var/status.log” 2>stdout
curl -sfI “https://X.X.X.X/.status/var/status.log” > /dev/null

if curl --cert /usr/local/nagios/certificat/private/srv-certificat.crt -sfI “https://X.X.X.X/.status/var/status.log” > /dev/null

Rien à faire il me renvoi toujours le fichier n’existe pas.

Est ce un probleme de certificat qui bloque ?

Merci

Bonjour,

Que te donne comme retour la commande curl ? Avant d’en virer les retour, regarde déjà ce qui le gêne.

Usti

Merci

Oui désolé je me suis lancé directement dans une commande sans faire déjà un curl simple.

Du coup j’ai trouvé, le curl simple me renvoyai bien ceci :
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn’t adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you’d like to turn off curl’s verification of the certificate, use
the -k (or --insecure) option.

C’est bien un problème de certificat et donc j’ai fait comme indiqué l’option -k et cela fonctionne.

Merci