Извините, если вопрос глупый, но я новичок в этой области.Мне нужно подключиться к сервису через SSL с сайта Drupal 7.У меня есть файл с расширением .p12 и пароль для него.Также я использую PHP 7.1 1 и Windows 7 64x.Я преобразовал .p12-файл в .pem-файл, используя следующую команду:
openssl pkcs12 -in myfile.p12 -out myfile.pem
Прежде чем я установил Openssl на свой компьютер и добавил пути в Windows.После этого я пытаюсь использовать следующий код для подключения к серверу с использованием функций CURL.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'my_addr');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSLCERT, 'myfile.pem');
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, 'mypsw');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
if ($result === FALSE){
$curl_error = curl_error($ch);
}
curl_close($ch);
К сожалению, curl_exec возвращает FALSE, а curl_error возвращает следующее:
could not load PEM client certificate, OpenSSL error error:02001003:system library:fopen:No such process, (no key found, wrong pass phrase, or wrong file format?)
Iрешите выполнить этот код на сайте клиента, который находится на общем хостинге Linux, тогда как мой localhost работает на Windows 7 64x.Код выполняется без ошибок, но curl_exec возвращает пустую строку.
Хочу уточнить, что я делаю не так и почему сертификат клиента PEM не хочет загружаться?Что я должен сделать на своем локальном хосте, чтобы решить эту проблему?Я не могу отказаться от использования Windows 7 и начать использовать Linux вместо него.