Utilo

Калькулятор HTTP-подписей

Вычисляйте и отлаживайте подписи API-запросов шаг за шагом: AWS Signature V4, Alibaba Cloud ACS3, Tencent Cloud TC3-HMAC-SHA256 и OAuth 1.0a, а также проверяйте подписи вебхуков GitHub, Stripe и Slack — локально через Web Crypto.

Что делает этот калькулятор подписи HTTP

"Подпись запроса, которую мы рассчитали, не соответствует подписи, которую вы предоставили" является одной из самых разочаровывающих ошибок в работе API, потому что сервер никогда не говорит вам, какой шаг пошел не так. Этот калькулятор воспроизводит весь процесс подписания для AWS Signature Version 4, Alibaba Cloud ACS3-HMAC-SHA256, Tencent Cloud TC3-HMAC-SHA256 и OAuth 1.0a HMAC-SHA1, и показывает каждое промежуточное значение: канонический запрос, его хэш, строку для подписания, выведенный ключ подписи и окончательную подпись и заголовки. Он также проверяет входящие webhook подписи из GitHub, Stripe и Slack. Вся криптография использует веб-крипто-API браузера, поэтому ваши секретные ключи остаются на вашем устройстве.

Как пользоваться

  1. Выберите провайдера.
  2. Введите метод, URL, заголовки (один Name: value на строку) и тело точно так, как ваш код отправляет их.
  3. Введите ключ доступа, секретный ключ и, в случае необходимости, регион и услугу. Нажмите ** Использовать текущее время ** или прикрепите фиксированную метку времени для сравнения с захваченным запросом.
  4. Сравните каждый шаг с тем, что записывает ваш SDK или код. Первый шаг, который отличается, - это место, где находится жук.
  5. Для webhooks вставьте строгое запросное тело байт за байт, заголовок подписи и ваш секрет подписи, и инструмент скажет вам, совпадает ли он.

Частые причины несоответствия подписи

  • Каноническое кодирование URI: AWS кодирует каждый сегмент пути; S3 не кодирует дважды.
  • ** Порядок запроса:** параметры должны быть сортированы по кодированному ключу, а пустые значения все еще требуют =.
  • ** Подписанные заголовки:** Названия заголовков загружены, подрезаны, сортированы и соединены с ;. Забытие host или x-amz-date - это обычное явление.
  • Хэш полезной нагрузки: S3 требует заголовка x-amz-content-sha256; другие сервисы просто хэшируют тело.
  • ** Склонение по времени:** большинство провайдеров отклоняют запросы с отрывом более 515 минут.
  • Webhooks: Фреймворки часто анализируют и пересериализируют JSON до того, как вы его увидите. Проверьте на основе сырых байтов, а не перекодированного объекта. Полосатые знаки timestamp.body, слабые знаки v0:timestamp:body.

Частые вопросы

Можно ли ввести мой секретный ключ?

Страница выполняет все вычисления локально с помощью Web Crypto и ничего не отправляет. Для секретов производства, предпочтите временные учетные данные или тест-ключ.

Внедрение AWS было протестировано?
  • Да, это так. Он воспроизводит примеры подписей из документации AWS Signature Version 4, которые являются частью автоматизированных тестов сайта.
Поддерживает ли он AWS SigV4A или предопределенные URL-адреса?
  • Пока нет. Поддерживается SigV4 на базе заголовков; подпись предварительно подписанной строки запросов на дорожной карте.
Зачем OAuth 1.0a нужны параметры моего тела?

Для форм-кодированных объектов параметры являются частью базовой строки подписи. Тела JSON не включены.

Да. Вся обработка происходит прямо в вашем браузере с помощью JavaScript, Web Workers и веб-API. Ничего из того, что вы вводите, вставляете или загружаете, не отправляется на наши серверы.

Эта страница переведена с английского автоматически. Если вы заметили ошибку, сообщите нам.