このHTTP署名計算機が何をしているか
"私たちが計算した要求署名が、あなたが提供した署名と一致しない"は、API作業で最も不満を感じるエラーの1つです。サーバーがあなたに、どのステップが間違えたかを決して教えてくれないからです。この電卓は、AWS Signature Version 4、Alibaba Cloud ACS3-HMAC-SHA256、Tencent Cloud TC3-HMAC-SHA256、OAuth 1.0a HMAC-SHA1の署名プロセスを再現し、すべての中間値を表示します。定例要求、ハッシュ、署名する文字列、派生署名キー、最終署名とヘッダー。GitHub、Stripe、Slackから入ってくる webhook署名も確認しています。すべての暗号はブラウザの Web Crypto API を使用します秘密の鍵はデバイスに残ります
使い方
- プロバイダーのタブを選択します。
- 方法、URL、ヘッダー (一行あたり1
Name: value) とボディをコードが送信するように入力します - アクセスキー、秘密キー、地域、サービスなどを入力します。現在の時間を使用するをクリックするか、固定タイムスタンプをピンして、記録されたリクエストと比較します。
- SDKやコードログに比較してください。虫がどこにいるかです虫がどこにいるか
- Webhookでは、Raw request bodyをバイトごとに貼り付け、署名ヘッダーと署名秘密を貼り付けます。ツールが一致するかどうかを教えてくれます。
署名不一致の一般的な原因
- カノニカル URI コード化: AWS は各パスのセグメントをコードする.S3 はダブル・コード化しない。
- **クエリの順序付け:**パラメータは暗号化鍵でソートし、空の値はまだ
=が必要です。 - **署名されたヘッダ:**ヘッダ名は小文字で、カットされ、並べられ、
;と結合されています。hostやx-amz-dateを忘れることはよくあります - ペイロードハッシュ: S3には
x-amz-content-sha256ヘッダが必要で、他のサービスはボディをハッシュするだけです。 - ** 時計の偏差:** ほとんどのプロバイダは5~15分以上遅れたリクエストを拒否します。
- JSON を表示する前に解析し、再シリアル化します。復号されたオブジェクトではなく素バイトで確認します。ストライプは
timestamp.body、スラックはv0:timestamp:body