Почему важна автоматизация обновления SSL сертификатов Let's Encrypt
Let's Encrypt — это бесплатный центр сертификации, который предоставляет SSL-сертификаты с автоматическим подтверждением владения доменом и сроком действия всего 90 дней. Это отличное решение для владельцев сайтов на WordPress, которые хотят обеспечить безопасность HTTPS без дополнительных затрат.
Однако срок действия сертификата всего три месяца, поэтому крайне важно настроить автоматическое обновление сертификатов, чтобы избежать прерывания HTTPS-соединения и появления предупреждений в браузерах.
В этой статье мы рассмотрим, как правильно использовать Let's Encrypt для WordPress, обеспечив автоматическую генерацию и обновление сертификатов с помощью различных инструментов и плагинов.
Установка и настройка Let's Encrypt на сервере
Для начала нужно получить сертификат и настроить его обновление на уровне сервера. Наиболее популярный способ — использовать Certbot — официальный клиент Let's Encrypt.
На примере Ubuntu Linux команда для установки Certbot выглядит так:
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginxЕсли у вас веб-сервер Nginx, Certbot может автоматически настроить сертификаты для вашего виртуального хоста:
sudo certbot --nginx -d example.com -d www.example.comДля Apache замените --nginx на --apache. Certbot также создаст автоматическое задание cron или systemd таймер для обновления сертификатов.
Проверить работу обновления можно командой:
sudo certbot renew --dry-runИнтеграция Let's Encrypt в WordPress: плагины для автоматизации
Чтобы упростить работу с SSL в WordPress, можно использовать специальные плагины, которые помогут:
- Автоматически перенаправлять HTTP на HTTPS.
- Обновлять ссылки в базе данных на HTTPS.
- Поддерживать совместимость с Let's Encrypt.
Рассмотрим популярные решения.
Really Simple SSL
Один из самых популярных плагинов для работы с SSL в WordPress. После установки и активации плагин автоматически обнаружит сертификат и настроит перенаправления с HTTP на HTTPS.
Плюсы:
- Автоматическая настройка редиректов.
- Обновление URL в базе данных.
- Совместимость с большинством хостингов.
Минусы:
- Не занимается обновлением сертификатов на сервере — это нужно делать отдельно.
WP Let's Encrypt
Плагин позволяет автоматизировать получение и обновление сертификатов Let's Encrypt прямо из админки WordPress, если сервер поддерживает выполнение команд.
Пример использования:
if (!function_exists('wpssl_get_lets_encrypt_certificate')) {
function wpssl_get_lets_encrypt_certificate($domain) {
// Вызов команд Certbot через PHP
$command = 'certbot certonly --webroot -w /var/www/html -d ' . escapeshellarg($domain) . ' --non-interactive --agree-tos -m admin@' . escapeshellarg($domain);
exec($command, $output, $return_var);
if ($return_var === 0) {
return true;
} else {
return false;
}
}
}Этот код иллюстрирует, как можно вызвать Certbot из PHP, но для работы нужны права на выполнение команд и корректные пути.
Решение проблем с SSL в WordPress: обновление ссылок и кеша
Даже при корректно установленном сертификате могут возникать ошибки смешанного контента, когда некоторые ресурсы (изображения, скрипты) грузятся по HTTP.
Для решения этой проблемы нужно обновить ссылки в базе данных. Это можно сделать с помощью плагина Better Search Replace или WP-CLI:
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guidКроме того, важно очистить кеш браузера и плагинов кеширования (например, W3 Total Cache, WP Super Cache) после перехода на HTTPS.
Пример функции для принудительного HTTPS в WordPress
Если плагинов нет, можно добавить принудительное перенаправление на HTTPS через функции темы:
function wpssl_force_https_redirect() {
if (!is_ssl()) {
wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301);
exit;
}
}
add_action('template_redirect', 'wpssl_force_https_redirect');Этот код проверяет, загружена ли страница по HTTPS, и если нет — перенаправляет пользователя на защищённый протокол.
Использование WPSL WPRemark для уведомлений об SSL
Для информирования посетителей о проблемах с SSL и безопасности можно использовать плагин WPRemark. С его помощью можно создавать кастомные уведомления и предупреждения, например, показывать сообщение, если сертификат скоро истекает.
Это помогает поддерживать доверие пользователей и оперативно реагировать на вопросы безопасности.