Краткая форма: у меня есть некоторый код PHP, который загружает видео с моего сайта на YouTube. Я использую обычную предоставленную Google библиотеку PHP, google-api-php-client
, У меня этот код работает на двух серверах; работает на одном (https://www.example.com) но вдруг перестал работать на другой (https://dev.example.com), после периода работы приятно.
Детали: Код, выполняющий передачу, является относительно стандартным, насколько я могу сказать: как только библиотеки загружены и некоторые переменные получают некоторые значения, я делаю:
$client = new Google_Client();
$client->setClientId($youtube_client_id);
$client->setClientSecret($youtube_client_secret);
$redirect = filter_var('https://example.com/upload-to-youtube', FILTER_SANITIZE_URL);
$client->setRedirectUri($redirect);
$youtube = new Google_YoutubeService($client);
$client->authenticate();
header('Location: ' . $redirect);
Для сервера, который не работает, $client->authenticate
строка выдает ошибку:
Google_IOException: HTTP Error: (0) Problem with the SSL CA cert (path? access rights?) in Google_CurlIO->makeRequest() (line 128 of /var/www/html/example/includes/google-api-php-client/src/io/Google_CurlIO.php).
Другие, возможно, важные детали:
Вернувшись в консоль разработчика для моего приложения YT, я настроил следующие URI перенаправления:
https://dev.example.com/delete-from-youtube
https://dev.example.com/upload-to-youtube
Согласно тестеру SSL-сертификатов, который я нашел на https://www.sslshopper.com/ssl-checker.html, сертификаты на обоих сайтах видны и действительны.
Сертификат для dev.example.com получен от Comodo; Сертификат для www.example.com получен от GeoTrust. Я полагаю, я мог бы попытаться получить новый сертификат от GeoTrust, но я бы предпочел не тратить деньги, если я не знаю, что это решит проблему.
На обоих серверах работает одна и та же версия curl, если это актуально.
Мне кажется (мне), что сертификат и доступ к нему должны быть в порядке (если тестер сертификатов не прав), поэтому я не понимаю, откуда исходит жалоба. Код и конфигурация сервера долгое время не менялись, поэтому я искал внешнее объяснение. (Я понимаю, что это «Известные последние слова», но неважно.) Есть какие-нибудь мысли? Спасибо!
Потенциальный дубликат вопроса:
Amazon MarketplaceWebServiceOrders запросы внезапно завершаются неудачно, PHP curl дает ошибку SSL CA cert?
Мне пришлось перезапустить сервер, а не просто apache, чтобы решить проблему.
Других решений пока нет …