Привет всем, не могу подключиться к удаленному серверу через 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-скрипте?