Testuję API korzystające z funkcji php i certyfikatu CA, ale coś jest nie tak i jestem trochę zagubiony.Certyfikat równorzędny SSL lub klucz zdalny SSH nie był prawidłowy
Skonfigurowałem SSL na moim apache VirtualHost i wygląda dobrze (otwiera https:://[myVHost]
... działa).
jednak API curl wezwanie oddaj mi tę wiadomość:
SSL peer certificate or SSH remote key was not OK
nie jestem bardzo doświadczony z SSL, więc mam kilka pomysłów co do przyczyny tego.
UPDATE:
Jest to kod używam w moim cURL życzenie, mam skomentował 2 linie i zmienia ich wartość (spójrz na linii „todo”), w ten sposób to działa, jednak jest to tylko praca arround ...
$opts[CURLOPT_URL] = $url;
$opts[CURLOPT_RETURNTRANSFER] = true;
$opts[CURLOPT_CONNECTTIMEOUT] = 50;
$opts[CURLOPT_TIMEOUT] = 100;
$headers = array(
'Accept: application/json',
"User-Agent: APIXXX-PHP-Client");
$opts[CURLOPT_HTTPHEADER] = $headers;
$opts[CURLOPT_USERPWD] = $env->getApiKey() . ':';
if (certificatePresent()) {
// $opts[CURLOPT_SSL_VERIFYPEER] = true;
// $opts[CURLOPT_SSL_VERIFYHOST] = 2;
// TODO: SET IT BACK
$opts[CURLOPT_SSL_VERIFYPEER] = 0;
$opts[CURLOPT_SSL_VERIFYHOST] = 0;
$opts[CURLOPT_CAINFO] = $path
}
curl_setopt_array($curl, $opts);
$response = curl_exec($curl);
Potrzebujemy pełnego i kompletnego kodu, którego używasz do złożenia zamówienia, w tym * wszystkich * ustawionych opcji zwijania. Czy jest to również samopodpisany certyfikat? – Charles
Informacje dodane :) o pytaniu 'samopodpisanym certyfikacie' Nie wiem: certyfikat jest dostarczany z interfejsem API ... – WonderLand
Pomyślnie zidentyfikowano przyczynę główną:' CURLOPT_SSL_VERIFYHOST' ma wartość 2. Po ustawieniu na 2 curl sprawdzi, czy certyfikat jest ważny i czy został wydany przez urząd certyfikacji, któremu ufa. Jeśli certyfikat zdalny jest samopodpisany lub w inny sposób nie został wydany przez urząd certyfikacji, któremu ufa, będzie on jęczeć i podać błąd podobny do tego, który otrzymałeś. Jeśli masz certyfikat od strony trzeciej, musisz przekonać curl, aby zaufać urzędowi certyfikacji, który go podpisał. Mówisz, że dostałeś certyfikat CA, prawda? Co z tym zrobiłeś? – Charles