cURL с сертификатом PKCS # 12 в сценарии bash
я должен подключиться к веб-сервису, где необходим сертификат pkcs12. идея заключалась в том, чтобы использовать завиток в сценарии bash (в частности, в OS X).
я узнал, что одна из немногих вещей, которые ломают, не может сделать в общении, обрабатывает сертификаты pkcs12 (.p12). какие у меня варианты?
Я прочитал, что преобразование сертификата в формат PEM будет работать (с использованием openssl), однако я не знаю, как сказать завихрение, что он получает PEM и должен связываться с веб-сервисом, запрашивающим сертификаты PKCS12.
преобразование pkcs12 в pem было бы выполнено так (например), это сработало для меня, однако я не использовал их с curl:
openssl pkcs12 -in mycert.p12 -out file.key.pem -nocerts -nodes
openssl pkcs12 -in mycert.p12 -out file.crt.pem -clcerts -nokeys
любые подсказки? или, любые альтернативы скручиванию? решение должно быть основано на командной строке.
Ответы
Ответ 1
Я думаю, что вы все решили, но у меня была та же проблема. Я отвечаю за свое решение.
Если у вас есть.p12 файл, ваш подход правильный. Прежде всего, вы должны получить сертификат и ключ, отделенные от файла p12. Например, если у вас есть файл mycert.p12
openssl pkcs12 -in mycert.p12 -out file.key.pem -nocerts -nodes
openssl pkcs12 -in mycert.p12 -out file.crt.pem -clcerts -nokeys
Затем вам нужно позвонить на ваш адрес. Например, предположим, что вы хотите получить wsdl определенного веб-сервиса
curl -E ./file.crt.pem --key ./file.key.pem https://myservice.com/service?wsdl
Если файлы file.crt.pem и file.key.pem находятся в вашей рабочей папке, "./" является обязательным.
Ответ 2
Проверьте, есть ли у вас более новый локон. Более новые версии могут работать с PKCS12 напрямую.
curl --cert-type P12 --cert cert.p12:password https://yoursite.com