curl использует неправильный сертификат - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь вызвать службу, для которой требуется сертификат клиента для аутентификации.

Я взял свой pfx-файл и создал pem-файл и файл ключа, используя команды openSSL, приведенные ниже:

Создание открытого ключа: openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys-out Mycert.pem

Создать закрытый ключ: openssl pkcs12 -in [yourfile.pfx] -nocerts -out Mykey.key

Затем я вызываю службу с помощью следующей команды curl:

curl --cacert "Mycert.pem" --key "Mykey.key" --pass "Mypass" --url https://service.myservice.co.uk -vs> curl-output.txt 2> & 1

Запрос поступает на сервер, но не ведет себя так, как я ожидал. Когда я опрашиваю журналы сервера, я вижу, что запрос был отправлен с другим сертификатом. Похоже, что у curl есть какая-то проблема с приведенной выше командой, а затем TLS-рукопожатие говорит: «Я не понимаю этот сертификат, давайте посмотрим, смогу ли я использовать другой сертификат из хранилища сертификатов». Затем для выполнения запроса используется другой сертификат, установленный на моем компьютере, а не тот, который я указал.

Я пробовал много вариантов вышеуказанной команды (используя --cert вместо --cacert, удаление файла ключа, удаление сертификата и т. Д.), И ни одна из них не имеет никакого значения.

Мне нужно знать, почему это происходит и как я могу решить эту проблему.

Я использую Windows 10, и у меня есть версия curl "curl-7.66.0-win64-mingw "

Большое спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...