Я пытаюсь использовать 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);