MISSING_AUTHORIZATION_HEADER при использовании сертификата для аутентификации - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь пройти проверку подлинности на основе API с использованием сертификатов.

У меня есть файл pfx, который мне нужно преобразовать в требуемые сертификаты.

Для создания публичного сертификата я использовалкоманда:

openssl pkcs12 -in ~/Downloads/file.pfx -nodes -clcerts -nokeys | openssl x509 -out public.crt

Этот публичный сертификат был загружен на стороне API.

Теперь со стороны клиента мне нужно подключиться к API с помощью curl

Итак, сначала я сгенерировал закрытый ключ с помощью команды:

openssl pkcs12 -in ~/Downloads/file.pfx -nodes -nocerts | openssl rsa -out private_new.key

А теперь я пытаюсь подключиться к API с помощью команды:

curl -I -k --key ./private_new.key --cert ./public.crt https://<API-END-POINT>/foo/bar

Но в ответ я получаю:

HTTP/1.1 401 Unauthorized
Date: Thu, 31 Jan 2019 00:24:43 GMT
Server: Foo
X-IDS-ID: 4E178F65-78F2-4CB9-B31A-8D6288F854C5
WWW-Authenticate: Basic realm=CPS Rest Services
X-message-code: MISSING_AUTHORIZATION_HEADER
Content-Type: text/html
Vary: X-CSP-STRIP
X-IDS-Node: idp15
X-IDS-Pool: green
X-IDS-Project: prod
X-IDS-Landscape: eu-nl-1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000;includeSubDomains;preload
Cache-Control: private,no-cache,no-store

Что-то я пропустил?Я новичок в этом, поэтому я не уверен, что я мог пропустить.

1 Ответ

0 голосов
/ 31 января 2019
HTTP/1.1 401 Unauthorized
...
WWW-Authenticate: Basic realm=CPS Rest Services
X-message-code: MISSING_AUTHORIZATION_HEADER

Для API требуется правильный Аутентификация заголовок в вашем запросе, но вы его не отправляете.Непонятно, каким должно быть содержимое, но обычно есть имя пользователя и пароль, закодированные вместе.

Об API, к которому вы пытаетесь получить доступ, ничего не известно, поэтому помощь по его правильному использованию невозможна:

  • В частности, неизвестно, имеет ли сайт аутентификацию с использованием клиентского сертификата.Если этого не произойдет, вы не сможете применить его.
  • Если он поддерживает клиентские сертификаты, то может оказаться, что ваш самогенерируемый сертификат недостаточен, поскольку нет способа проверить, кто стоит за этим сертификатом.В этом случае он может попытаться использовать обычную проверку подлинности как запасной вариант для сбойного сертификата клиента.
  • Может также потребоваться базовая аутентификация сайта в дополнение к сертификату клиента.
...