Как устранить ошибку обновления SSL Let's Encrypt на Linux-сервере?
Руководство по ошибкам обновления Certbot, проблемам с проверкой домена и истекшим сроком действия SSL-сертификатов.
Когда срок действия SSL-сертификата веб-сайта истечет, посетители увидят в своем браузере предупреждение о незащищенности. Это не только снижает доверие пользователей; WHMCS также создает серьезные проблемы для платежных систем, API-подключений, игровых панелей и входа клиентов.
Сертификаты Let's Encrypt бесплатны, но их необходимо периодически обновлять. Если Certbot настроен неправильно, продление не удастся, и срок действия SSL может истечь.
1. Проверка доступных сертификатов
Сначала проверьте, какие сертификаты присутствуют на сервере:
certbot certificates
Эта команда показывает имя сертификата, домены, пути к файлам и дату истечения срока действия.
Если команды certbot нет, возможно, ее нельзя установить:
certbot --version
2. Выполнение обновления тестирования
Чтобы протестировать сертификат перед его фактическим продлением:
certbot renew --dry-run
Эта команда проверяет процесс обновления. Если есть ошибка, это позволяет вам увидеть проблему до фактического дня продления.
3. Наиболее распространенные ошибки Certbot
Большинство ошибок продления Let's Encrypt связаны с проверкой домена и доступом к веб-серверу.
- Неверный ответ: Let's Encrypt не может получить доступ к файлу проверки.
- В соединении отказано: Порт 80 или 443 может быть закрыт.
- Таймаут во время подключения: Возможно, домен не направлен на сервер или брандмауэр блокирует его.
- Несанкционированное: Файл проверки домена может возвращать неверное содержимое.
- Слишком много сертификатов: Возможно, попытки получения сертификата предпринимались слишком часто.
4. Проверка IP-маршрутизации домена
Чтобы продление сертификата работало, домен должен быть направлен на правильный IP-адрес сервера.
dig domainadi.com +short
Если dig не установлен:
apt install dnsutils -y
В системах на базе CentOS:
yum install bind-utils -y
IP-адрес, возвращаемый доменом, должен совпадать с IP-адресом сервера, на котором будет установлен SSL.
5. Проверка портов 80 и 443.
Let's Encrypt часто хочет получить доступ к порту 80 для аутентификации HTTP. Если порт 80 закрыт, аутентификация может завершиться неудачно.
ss -tulpn | grep -E ':80|:443'
Если вы используете брандмауэр, убедитесь, что порты 80 и 443 открыты.
Для УФВ:
ufw allow 80/tcp ufw allow 443/tcp ufw reload
Для Firewalld:
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
6. Тестирование конфигурации Nginx или Apache
Если в файле конфигурации веб-сервера есть ошибка, веб-служба может не быть перезагружена после обновления сертификатбота.
Для Нгинкса:
nginx -t
Для Апача:
apachectl configtest
Если ошибок нет, можно переустановить службы:
systemctl reload nginx
или:
systemctl reload apache2
7. Обновление SSL-сертификата вручную.
Если все проверки верны, вы можете запустить обновление вручную:
certbot renew
Пример Nginx, если вам нужно пройти повторную сертификацию только для определенного домена:
certbot --nginx -d domainadi.com -d www.domainadi.com
Пример Апача:
certbot --apache -d domainadi.com -d www.domainadi.com
8. Проверка планировщика автоматического обновления
Certbot обычно автоматически обновляется с помощью системного таймера или cron.
systemctl list-timers | grep certbot
Чтобы проверить состояние таймера:
systemctl status certbot.timer
Если таймер выключен:
systemctl enable certbot.timer systemctl start certbot.timer
Распространенные ошибки
- Попытка получить SSL, когда IP-адрес домена неправильный
- Закройте порт 80 и подождите, пока заработает HTTP-аутентификация.
- Не проверять структуру аутентификации при включенном прокси Cloudflare
- Принятие ошибки конфигурации Nginx/Apache за ошибку certbot
- Не тестировать автоматическое продление до истечения срока действия SSL
Часто задаваемые вопросы
Если срок действия SSL истек, сайт полностью закроется?
Технически сайт может работать, но браузер показывает предупреждение безопасности. Это серьезно снижает доверие клиентов.
Почему Certbot не обновляется?
Обычно домен направлен на неправильный IP, закрыт порт 80/443, неправильная конфигурация веб-сервера или файл проверки недоступен.
Является ли продление SSL проблемой при использовании Cloudflare?
Неправильный режим SSL или конфигурация прокси-сервера могут повлиять на процесс проверки. Метод проверки домена должен быть выбран соответствующим образом.
Рекомендации по безопасности и эксплуатации
- Регулярно проверяйте сроки действия SSL.
- Периодически запускайте тест certbot renew --dry-run.
- Не закрывайте порты 80 и 443 без необходимости.
- После изменения конфигурации веб-сервера запустите nginx -t или apachectl configtest.
- Не пренебрегайте SSL-мониторингом на доменах, использующих платежные и клиентские панели.
Эта статья специально подготовлена для PvPServer.