PHP -SSLCURL Error - невозможно загрузить сертификат клиента: -8018 (SEC_ERROR_UNKNOWN_PKCS11_ERROR) - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь использовать REST API, который требует аутентификации сертификата клиента в моем коде PHP. У меня сертификат преобразован в формат .pem, .pfx, .crt, .key и .keystore . API также требует аутентификации Basi c с использованием имени пользователя и пароля

Я пробовал другую реализацию на сервере, но продолжаю получать ошибку « не удается загрузить сертификат клиента: -8018 (SEC_ERROR_UNKNOWN_PKCS11_ERROR »

Это поле linux, RedHat , работающий на Apache и PHP.

Вот фрагмент кода, который я реализовал в настоящее время

$username="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
$password="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
$certFile = "/etc/ssl/certs/cert/example.pem";
$certPass = "examplepass";
$keyFile = "/etc/ssl/certs/cert/example.key";
$caFile = "/etc/ssl/certs/cert/example.crt";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://www.example.com/some_protected_page');
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array(
"Content-type: $content_type", 
));

// The --cert option
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//curl_setopt($ch, CURLOPT_CAINFO, $certFile);
curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');
curl_setopt($ch, CURLOPT_SSLCERT, $certFile);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $certPass);
//curl_setopt($ch, CURLOPT_SSLKEY, $keyFile);
//curl_setopt($ch, CURLOPT_SSLKEYPASSWD, $certPass); 
curl_setopt($ch, CURLOPT_TIMEOUT, 300);

$adata =  curl_exec($ch);
...