Использовать самоподписанный сертификат cURL?
У меня есть флеш-приложение, использующее самоподписанный сертификат. Я могу отправить запрос на завивание, используя:
curl -v -k -H "Content-Type: application/json" -d '{"data":"value1","key":"value2"}' https://<server_ip>:<port>
Подробные журналы показывают, что все прошло хорошо.
Я хотел избежать использования опции -k (--insecure) и вместо этого указать файл .pem, который может использовать curl. Посмотрев на страницу curl man, я обнаружил, что вы можете сделать это, используя опцию --cert.
Поэтому я создал файл .pem, используя это:
openssl rsa -in server.key -text > private.pem
CURL выдает мне эту ошибку при использовании файла private.pem:
curl: (58) unable to use client certificate (no key found or wrong pass phrase?)
Любые предложения? - или это возможно только с правильно подписанным сертификатом?
Тпх
Ответы
Ответ 1
Это еще одна версия этого вопроса: Использование openssl для получения сертификата с сервера
Или более прямо:
Использование curl --cert неверно, это для клиентских сертификатов.
Сначала получите сертификаты, которые использует ваш сервер:
$ openssl s_client -showcerts -servername server -connect server:443 > cacert.pem
(-servername
необходим для SNI, чтобы получить правильный сертификат виртуального сервера)
Затем сделайте свою командную строку curl, которая настроена для проверки сервера в последующих операциях:
$ curl --cacert cacert.pem https://server/ [and the rest]