У меня были проблемы на моем сервере разработки, где cURL, отлично работая с чем-либо HTTP, не работает должным образом с чем-либо HTTPS - даже с тем же самым ресурсом с различными протоколами (для тестирования я запрашивал google.com используя как http, так и https).
Полученная ошибка cURL равна 35: "Проблема возникла где-то в рукопожатии SSL/TLS".
Я расчесывал web и SO для решений, и все они были либо для установки CURLOPT_SSL_VERIFYPEER на false, что ничего не меняет, либо загружает файл сертификата и устанавливает CURLOPT_CAINFO на свой путь, что также ничего не меняет.
При настройке сертификата я выполнил инструкции этот учебник и этот учебник, пытаясь как загрузить сертификат для запрашиваемого ресурса, так и загрузить пакет сертификатов.
Я также попытался явно установить CURLOP_PORT на 443. Для тщательности моего вопроса, другие параметры, которые я установил, это CURLOPT_VERBOSE = true, CURLOPT_RETURNTRANSFER = true и CURLOPT_SSL_VERIFYHOST = 2 (я пробовал каждую комбинацию из 1 и 2 с VERIFYPEER - true и false). Я также убедился в phpinfo(), что у меня есть OpenSSL, и он включен.
Я использую много старого кода, который отлично работал на моем последнем производственном сервере, поэтому этот код работал раньше. Но этот хостинг был общим хостингом, и я не знаю большую часть конфигурации там.