Вопрос или проблема
Я только что обновил веб-сервер с Ubuntu 22.04 до 24.04, все, кажется, в порядке, кроме cURL, который возвращает ошибку:
curl: (60) SSL-сертификат партнера или удалённый SSH-ключ был недействителен
Подробности можно найти здесь: https://curl.se/docs/sslcerts.html
curl не смог подтвердить законность сервера и, следовательно, не смог
установить с ним безопасное соединение. Чтобы узнать больше об этой ситуации и
о том, как её исправить, пожалуйста, посетите упомянутую выше веб-страницу.
Я проверил ssh_config и sshd_config, но не увидел ничего подозрительного. Нужно ли мне сейчас регенерировать сертификаты? Я не вижу причины, по которой они вдруг стали недействительными.
Ответ или решение
Ошибка curl: (60) SSL peer certificate or SSH remote key was not OK
указывает на проблему с проверкой SSL-сертификата сервера. Это может произойти по нескольким причинам, особенно после обновления системы. Давайте рассмотрим шаги, которые помогут вам решить эту проблему.
1. Проверка сертификата
Первое, что нужно сделать, это проверить, действительно ли сертификат вашего веб-сервера действителен. Вы можете использовать команду openssl
для этого:
openssl s_client -connect yourdomain.com:443
Замените yourdomain.com
на имя вашего домена. Эта команда выведет информацию о сертификате, и вы сможете увидеть, действителен ли он и не истек ли срок его действия.
2. Обновление корневых сертификатов
После обновления системы могут измениться пути к корневым сертификатам или сам набор корневых сертификатов, поэтому выполните команду обновления:
sudo apt update
sudo apt install --reinstall ca-certificates
Это обновит и переустановит пакеты с корневыми сертификатами, что может устранить проблему.
3. Проверка конфигурации cURL
Убедитесь, что ваша версия cURL поддерживает SSL. Вы можете проверить это с помощью команды:
curl --version
Убедитесь, что в выводе присутствует поддержка OpenSSL или другого SSL-клиента.
4. Удаление или замена сертификатов
Если после проверки вы понимаете, что сертификат недействителен, вам нужно либо обновить его, либо получить новый сертификат. Например, если вы используете Let’s Encrypt, вы можете сгенерировать новый сертификат с помощью Certbot:
sudo certbot --apache -d yourdomain.com
или
sudo certbot --nginx -d yourdomain.com
5. Изменение настроек cURL
Если вы хотите временно игнорировать проверку SSL (это небезопасно и не рекомендуется делать на продакшн-серверах), вы можете использовать ключ -k
или --insecure
:
curl -k https://yourdomain.com
Однако этот подход стоит использовать только для диагностики проблем и не является решением.
6. Логи и отладка
Если ни один из вышеперечисленных шагов не помог, просмотрите логи вашего веб-сервера и cURL для диагностики. Логи помогут определить, есть ли дополнительные проблемы, такие как конфигурация веб-сервера или проблемы с сетью.
Заключение
Проблема curl: (60)
часто возникает из-за недействительных сертификатов или неправильной конфигурации. Следуя вышеописанным шагам, вы сможете диагностировать и устранить проблему. Если после всех проверок проблема сохраняется, могут потребоваться более глубокие исследования вашего окружения или обращения к системному администратору, который может помочь в решении более сложных проблем с сетью или конфигурацией сервера.