Вопрос или проблема
Я вижу ошибку cURL error 60: проблема с SSL сертификатом: сертификат истек в проверке состояния сайта, и я также получаю ее при сохранении некоторых страниц или при попытке обновить плагины.
Тем не менее, мой веб-сайт работает нормально (https-ссылка работает и показывает замок).
Кроме того, я пробовал решения в других похожих вопросах, таких как:
https://stackoverflow.com/questions/62107431/curl-error-60-ssl-certificate-problem-certificate-has-expired
Я проверил в частности https://whatsmychaincert.com, который указывает, что сертификат должен быть в порядке.
И мой сервер явно показывает, что сертификат актуален. Сайт работает уже около года без проблем. Есть ли какие-то другие шаги для отладки этой проблемы?
Я обнаружил, что недавно (30 сентября) сертификаты Let’s Encrypt истекли DST Root CA X3. В дополнение к ошибке curl 60 у меня также были ошибки Rest API и невозможность обновить плагины в WordPress. Возможно обновить это в установке WordPress:
Патч доступен здесь и должен быть доступен с WordPress 5.9 (декабрь 2021), если не раньше:
https://core.trac.wordpress.org/changeset/51883/trunk/src/wp-includes/certificates/ca-bundle.crt
Ответ или решение
Ошибка cURL 60: "Проблема с SSL-сертификатом: сертификат истек" — это распространенная проблема, с которой могут столкнуться администраторы сайтов и разработчики, работающие с API REST. Давайте детально разберем эту ошибку и возможные шаги по её устранению.
Природа проблемы
Вы столкнулись с ошибкой cURL 60 в процессе выполнения запросов к REST API вашего сайта. Эта ошибка указывает на то, что ваш клиент cURL не может проверить SSL-сертификат, и причиной может быть то, что сертификат действительно истек или цепочка доверия не является действительной.
Как это влияет на работу сайта
Несмотря на то, что сайт по-прежнему доступен через HTTPS и отображает замок в адресной строке, это не всегда является признаком того, что с сертификатом все в порядке. Замок может быть показан, если браузер получает действующий сертификат хотя бы на одном уровне, но это не исключает проблем с цепочкой сертификатов, которую cURL не может распознать.
Возможные причины ошибки
-
Истекший корневой сертификат: Как вы правильно заметили, с 30 сентября 2021 года истек корневой сертификат DST Root CA X3, связанный с Let’s Encrypt. Это могло привести к проблемам для клиентов, использующих старые версии cURL или OpenSSL.
-
Старая версия PHP или cURL: Версии cURL и OpenSSL могут быть устаревшими и некорректно обрабатывать современные сертификаты.
-
Проблемы с цепочкой сертификатов: Возможно, проблема заключается в том, что промежуточные сертификаты не установлены должным образом на вашем сервере.
Решения
-
Обновите cURL и OpenSSL: Убедитесь, что вы используете актуальные версии этих библиотек. Это необходимо для обработки новых типов сертификатов и цепочек доверия.
-
Проверка сертификата: Посмотрите на ваш SSL-сертификат с помощью инструмента, такого как whatsmychaincert.com. Если он показывает, что цепочка доверия нарушена, возможно, вам нужно установить промежуточные сертификаты.
-
Обновление WordPress: Как вы упомянули, возможно применение патча, который обновляет корневые сертификаты в WordPress. Проверьте, используете ли вы актуальную версию WordPress (настоящая версия должна быть 5.9 или выше). Если нет, обновление может решить вашу проблему.
-
Проверка конфигурации сервера: Убедитесь, что ваш веб-сервер (например, Apache или Nginx) настроен правильно и предоставляет полный набор сертификатов, включая корневой и промежуточные.
-
Проверка кода: Возможно, некоторые плагины или темы WordPress могут вызывать конфликты. Проводите отладку, отключая плагины по одному.
-
Использование альтернативного сервиса SSL: Если ваши проблемы продолжаются, рассмотрите возможность использования другого провайдера сертификатов вместо Let’s Encrypt.
Заключение
Проблема cURL error 60 является многофакторной и требует внимательного анализа. Используя предложенные шаги, вы сможете обнаружить и устранить причины. Регулярное обновление системных компонентов и мониторинг безопасности сертификатов помогут вам избежать подобных проблем в будущем. Необходимо оставаться proактивным в отношении обновлений и поддержания безопасности вашего сайта.