Это запрос, который я отправляю с моим PHP кодом-
$url = 'https://mywebserviceurl.com';
$method='GET';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_VERBOSE, '1');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, '2');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 'TRUE');
curl_setopt($ch, CURLOPT_CAINFO, __DIR__.'/print_ca_ca.cer');
curl_setopt($ch, CURLOPT_SSLCERT, __DIR__.'/print_ca_cert.cer');
curl_setopt($ch, CURLOPT_SSLKEY, __DIR__.'/print_ca_key_decr.pem');
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, 'somepassword');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$resp = json_encode($response);
$this->setErrorCodeMessage('401', 'Response-> '.$resp); //get a False here
$error = curl_error($ch);
$this->setErrorCodeMessage('401', 'Error-> '.$error); //get Error here
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status_code == '200' && !empty($response)) {
$this->setErrorCodeMessage('401', 'Inside 200 OK..');
}
Ошибка, которую я вижу в моих журналах ошибок:
SSL-узел некоторая неуказанная проблема с сертификатом, который он получил.
Когда я делаю php -a и пытаюсь выполнить запрос как есть на оболочке вместе с приведенной выше строкой ошибки Я также получаю следующее:
Ошибка NSS -12224 (SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT)
У меня изначально был файл p12, и я получил цепочку ca (файл .cer), сертификат ssl (файл .cer) и файлы ключей (файл .pem) из него с помощью команд openssl, и я использую эти файлы с запросом Curl. На данный момент я попробовал все; используя файлы pem, crt, cer, устанавливая значения CURLOPT_SSL_VERIFYHOST и CURLOPT_SSL_VERIFYPEER в разные значения, а также пытался получить запрос POST, но я продолжаю получать У равноправного участника SSL была некоторая неопределенная проблема с полученным сертификатом.
Есть ли что-то, что я делаю не так? Любые предложения?
PS - Я использовал исходный файл P12 и его пароль на Postman и смог отправить оба запроса GET / POST без проблем.