web-dev-qa-db-fra.com

AWS SDK Error - La signature n'est pas encore à jour

J'utilise le aws-sdk-php, le SesClient en particulier, j'ai déployé une application sur un serveur client (hébergé sur DreamHost) et j'obtiens cette erreur:

Signature not yet current: 20130909T170846Z is still later than 20130909T170823Z (20130909T170323Z + 5 min.)

J'imagine que l'heure du serveur est mal configurée, j'essaie de contacter le support DH pour vérifier cela, je parie que cela prendra un certain temps.

D'autres idées? L'application a été déployée plusieurs fois auparavant et je n'ai jamais vu cette erreur.

37
xmarcos

Il semble que ce soit juste une mauvaise configuration de date système, cochez cette case

https://forums.aws.Amazon.com/thread.jspa?threadID=103764#

Ce gars avait le même problème.

35
Martin Navarro

J'ai eu le même problème. J'exécutais mon serveur de CI à partir d'une instance Ubuntu EC2 et cela a le temps de synchronisation J'ai synchronisé l'heure avec NTP lors de la poursuite 

Sudo ntpdate ntp.ubuntu.com

Cela a commencé à bien fonctionner.

45
Kamrul

J'ai eu le même problème récemment. J'ai fait ce qui suit

Sudo ntpd -q -g

L'option -g est nécessaire si votre horloge est désynchronisée. Il oblige ntpd à continuer jusqu'à ce qu'il soit synchronisé.

5
Bish

Je viens de rencontrer le même problème avec une application Django déployée sur AWS. L’erreur sur le site était très vague, mais le journal des erreurs qui m’a été envoyé me disait: "JSONResponseError: JSONResponseError: 403 Interdit {. Message ':' La signature n’est pas encore à jour: 20150224T185106Z est toujours postérieure à 20150224T185033Z (20150224T184533Z + 5 min .) '} "après un chemin de fichier qui pointe vers Boto et Elastic Transcoder. Procédez comme suit sur le serveur:

  1. ntpq -p vous dira si vous avez installé ntp
  2. Si vous n'avez pas ntp, faites Sudo apt-get install ntp
  3. Sudo service ntp stop
  4. Sudo ntpdate -s us.pool.ntp.org alignera l’heure de votre serveur avec les horloges atomiques des États-Unis (il faudra l’adapter à votre pays)
  5. Sudo service ntp start

Bonne chance! Vous pouvez en lire plus ici: http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/set-time.html#configure_ntp

5
Michelle Glauser

Vous devez simplement vous assurer que l'heure de votre serveur correspond à une précision de 5 minutes par rapport à l'heure actuelle. vérifiez l'heure AM ou PM.

2
Duvan

J'ai fait face à un problème similaire et après une enquête, trouvé la cause fondamentale. 

La raison en était que mon fuseau horaire instance/serveur AWS et mon fuseau horaire système local à partir duquel je passais un appel RESTful étaient différents. AWS suppose que la demande provient également du même fuseau horaire (elle ignore simplement un intervalle de 5 minutes, pas plus que cela). J'ai pu valider cela en effectuant un test d'appel à partir de la console AWS et en vérifiant les détails dans les journaux (en donnant un extrait de code Java).

private String getDateString() {
    Calendar cal = Calendar.getInstance();
    DateFormat dfm = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
    dfm.setTimeZone(TimeZone.getTimeZone("UTC"));  //server timezone
    return dfm.format(cal.getTime());
}
2
rai.skumar

Pour les fenêtres, vérifiez que votre time et timezone est correct. L'heure de votre PC doit être à la précision 5 minutes par rapport à l'heure actuelle.

0
Bhanuka Rathnayaka