Je vais vous montrer ma demande de signature.Erreur: Les signatures ne correspondent qu'une seule fois dans la demande d'API EC2
https://ec2.eu-west-1.amazonaws.com?AWSAccessKeyId=THISISFAKEIDD
&Action=AuthorizeSecurityGroupIngress
&GroupId=sg-blahblah
&IpPermissions.1.FromPort=7264
&IpPermissions.1.IpProtocol=ani
&IpPermissions.1.IpRanges.1.CidrIp=272.64.292.200%2F32
&IpPermissions.1.ToPort=7264
&SignatureMethod=HmacSHA256
&SignatureVersion=2
&Timestamp=2014-06-10T05%3A25%3A10Z
&Version=2014-05-01
&Signature=FZgxzY0htCocacolaX4PXf0uJjnwmayhemDavkwCUw=
Signature a été générée & cette demande a été en mesure d'ajouter mon adresse IP (272.64.292.200) avec succès dans le groupe de sécurité (sg-blahblah). Donc, cela signifie que cette demande est correcte & il n'y a pas d'erreur dans mon code pour générer la signature.
OK. Maintenant, lorsque j'essaie d'ajouter une autre adresse IP au même groupe en utilisant la même demande de signature avec un paramètre d'adresse IP différent & Horodatage, une nouvelle signature est générée. Mais je ne suis pas en mesure de l'ajouter au groupe de sécurité. La signature ne correspond pas. La signature calculée ne correspond pas est affichée.
Pourquoi est-ce le cas? J'utilise l'heure UTC. Si ma demande était incorrecte, comment ai-je pu ajouter l'adresse IP à la première place? Ou, est-ce une erreur du côté serveur de EC2 ??
Notez que parfois la signature a des caractères qui nécessitent un codage d'URL. Cela peut faire fonctionner certaines demandes, et d'autres pas. – BraveNewCurrency
Quels caractères dois-je encoder ??? Je pense que j'ai encodé l'URL. @BraveNewCurrency –
Votre encodage d'URL n'est pas correct. C'est encoder "/" et ":" dans le paramètre de requête (pas nécessaire). Parfois le "=" à la fin de la signature doit être encodé (même si la norme ne le dit pas). http://blog.lunatech.com/2009/02/03/what-every-web-developer-must-know-about-url-encoding – BraveNewCurrency