Не могу отправить запрос curl через https - PullRequest
0 голосов
/ 07 ноября 2018

Привет всем, не могу подключиться к удаленному серверу через https.

Это мой код:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://remote_ip:9192/?doc");
curl_setopt($ch, CURLOPT_SSLCERT, $private_key);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $secret_word);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, '');
curl_setopt($ch, CURLOPT_CAINFO, getcwd().$server_key);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

$output = curl_exec($ch);
$res = curl_error($ch);
var_dump(openssl_get_cert_locations());
echo $res;

И я получаю следующий вывод:

array (size=8)
  'default_cert_file' => string '/usr/lib/ssl/cert.pem' (length=21)
  'default_cert_file_env' => string 'SSL_CERT_FILE' (length=13)
  'default_cert_dir' => string '/usr/lib/ssl/certs' (length=18)
  'default_cert_dir_env' => string 'SSL_CERT_DIR' (length=12)
  'default_private_dir' => string '/usr/lib/ssl/private' (length=20)
  'default_default_cert_area' => string '/usr/lib/ssl' (length=12)
  'ini_cafile' => string '/srv/site/keys/mycert.pem' (length=31)
  'ini_capath' => string '' (length=0)
SSL certificate problem: unable to get local issuer certificate

Я даже пытаюсь добавить файл pem в конфигурацию php.ini:

curl.cainfo = "/ SRV / сайт / ключи / mycert.pem" openssl.cafile = "/ SRV / сайт / ключи / mycert.pem"

Сертификат хорош, если я сделаю запрос в терминале curl:

curl --noproxy "*" --cacert mycert.pem --cert newfile.pem: пароль -k https://remote_ip:9192/?doc

Я получу документ от сервера mremote.

Что не так в моем PHP-скрипте?

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