Я пытаюсь вызвать службу, для которой требуется сертификат клиента для аутентификации.
Я взял свой 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 "
Большое спасибо