script cURl API OVH: message“:”Invalid signature"

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] script cURl API OVH: message“:”Invalid signature"

    Hello,

    J'utilise l'API OVH pour ajouter des entrées dans la zone DNS d'un domaine.
    J'utilise la commande CURL dans un script shell, mais j'obtiens cette erreur :

    Code HTML:
    `{"message":"Invalid signature","httpCode":"400 Bad Request","errorCode":"INVALID_SIGNATURE"}`
    Voici le contenu du script qui provoque cette erreur :

    Code HTML:
    OVH_CONSUMER_KEY="XXXXX"
    OVH_APP_KEY="XXXXX"
    OVH_APP_SECRET="XXXXX"
    HTTP_METHOD="POST"
    HTTP_QUERY="https://api.ovh.com/1.0/domain/zone/domaine.fr/record"
    HTTP_BODY=""
    TIME=$(curl -s https://api.ovh.com/1.0/auth/time)
    CLEAR_SIGN="$OVH_APP_SECRET+$OVH_CONSUMER_KEY+$HTT P_METHOD+$HTTP_QUERY+$HTTP_BODY+$TIME"
    SIG='$1$'$(echo -n $CLEAR_SIGN | openssl dgst -sha1 | sed -e 's/^.* //')
    
    curl -X $HTTP_METHOD \
    $HTTP_QUERY \
    -H "Content-Type:application/json;charset=utf-8" \
    -H "X-Ovh-Application:$OVH_APP_KEY" \
    -H "X-Ovh-Timestamp:$TIME" \
    -H "X-Ovh-Signature:$SIG" \
    -H "X-Ovh-Consumer:$OVH_CONSUMER_KEY" \
    -d '{"fieldType":"TXT", "subDomain":"", "target":"VX=SPF"}'
    Par contre avec ce script cela fonctionne :

    Code HTML:
    OVH_CONSUMER_KEY="XXXXX"
    OVH_APP_KEY="XXXXX"
    OVH_APP_SECRET="XXXXX"
    HTTP_METHOD="GET"
    HTTP_QUERY="https://api.ovh.com/1.0/domain"
    HTTP_BODY=""
    TIME=$(curl -s https://api.ovh.com/1.0/auth/time)
    CLEAR_SIGN="$OVH_APP_SECRET+$OVH_CONSUMER_KEY+$HTT P_METHOD+$HTTP_QUERY+$HTTP_BODY+$TIME"
    SIG='$1$'$(echo -n $CLEAR_SIGN | openssl dgst -sha1 | sed -e 's/^.* //')
    
    curl -X $HTTP_METHOD \
    $HTTP_QUERY \
    -H "Content-Type:application/json;charset=utf-8" \
    -H "X-Ovh-Application:$OVH_APP_KEY" \
    -H "X-Ovh-Timestamp:$TIME" \
    -H "X-Ovh-Signature:$SIG" \
    -H "X-Ovh-Consumer:$OVH_CONSUMER_KEY"
    Les seules différences entre les 2 sont les variables :

    HTTP_METHOD
    HTTP_QUERY
    DATA


    Auriez-vous une idée car la je vois pas?

    Merci
    L.
    Dernière édition par Tortue Genial 69 à 27/10/2020, 12h02
    Expert en conception et réalisation de sites Internet 100% Joomla
    www.toonetcreation.com

  • #2
    Bon j'ai trouvé la solution, voir ci-dessous pour ceux que cela intéresse :


    Code HTML:
    OVH_CONSUMER_KEY="XXXXX"
    OVH_APP_KEY="XXXXX"
    OVH_APP_SECRET="XXXXX"
    HTTP_METHOD="POST"
    HTTP_QUERY="https://api.ovh.com/1.0/domain/zone/domaine.fr/record"
    txt_type="TXT"
    txt_field=""
    txt_value='"XXXXXXXXXXXXXXX"'
    HTTP_BODY="{"fieldType":"$txt_type","subDomain":"$txt_field","target":"$txt_value"}"
    TIME=$(curl -s https://api.ovh.com/1.0/auth/time)
    CLEAR_SIGN=$OVH_APP_SECRET"+"$OVH_CONSUMER_KEY"+"$HTTP_METHOD"+"$HTTP_QUERY"+"$HTTP_BODY"+"$TIME
    SIG='$1$'$(echo -n $CLEAR_SIGN | openssl dgst -sha1 -hex | cut -f 2 -d ' ' )
    
    curl -X $HTTP_METHOD \
    $HTTP_QUERY \
    -H "Content-Type: application/json" \
    -H "X-Ovh-Application: $OVH_APP_KEY" \
    -H "X-Ovh-Timestamp: $TIME" \
    -H "X-Ovh-Signature: $SIG" \
    -H "X-Ovh-Consumer: $OVH_CONSUMER_KEY" \
    --data "$HTTP_BODY"
    Expert en conception et réalisation de sites Internet 100% Joomla
    www.toonetcreation.com

    Commentaire

    Annonce

    Réduire
    Aucune annonce pour le moment.

    Partenaire de l'association

    Réduire

    Hébergeur Web PlanetHoster
    Travaille ...
    X