Использовать самоподписанный сертификат cURL?

У меня есть приложение с флягой, использующее самоподписанный сертификат. Я могу отправить запрос на завивание, используя:

curl -v -k -H "Content-Type: application/json" -d '{"data":"value1","key":"value2"}' https://: 

Подробные журналы показывают, что все прошло хорошо.

Я хотел избежать использования опции -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?) 

Какие-либо предложения? – или это возможно только с правильно подписанным сертификатом?

Tnx

Это еще одна версия этого вопроса: Использование openssl для получения сертификата с сервера

Или более откровенно:

Использование curl -cert неверно, это для клиентских сертификатов.

Сначала получите сертификаты, которые использует ваш сервер:

 $ echo quit | openssl s_client -showcerts -servername server -connect server:443 > cacert.pem 

( -servername необходимо для SNI, чтобы вы получили правильный сертификат виртуального сервера)

Затем сделайте свою командную строку curl, которая настроена для проверки сервера в последующих операциях:

 $ curl --cacert cacert.pem https://server/ [and the rest] 
  • javax.net.ssl.SSLPeerUnverifiedException: имя хоста не соответствует теме сертификата, предоставленной партнером
  • Последствия безопасности отключения CURLOPT_SSL_VERIFYHOST (libcurl / openssl)
  • Преобразование Java Keystore в формат PEM
  • Могу ли я отключить ошибку / предупреждение сертификата в Firefox / Chrome / Internet Explorer?
  • Почему локальное хранилище сертификатов отсутствует в Windows 8.1?
  • Как сказать Maven игнорировать ошибки SSL (и доверять всем сертификатам)?
  • Присвоение имени домена локальному хосту для среды разработки
  • Java7 Отказ от доверия сертификату в хранилище доверия
  • Использование самозаверяющего сертификата с .NET HttpWebRequest / Response
  • Java: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти допустимый путь сертификации для запрошенной цели
  • проверка сертификата сервера не удалась. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
  • Давайте будем гением компьютера.