При работе с SSL в WordPress часто возникает ситуация, когда в системе остаются старые или неиспользуемые SSL-сертификаты. Это может привести к конфликтам, ошибкам безопасности и проблемам с загрузкой сайта. В этой статье подробно разберём, как корректно удалить старые SSL-сертификаты в WordPress, чтобы избежать проблем с безопасностью и работоспособностью сайта.
Почему важно удалять старые SSL-сертификаты
Старые SSL-сертификаты, которые не обновлены или не удалены, могут вызвать следующие проблемы:
- Смешанный контент. Браузеры могут блокировать загрузку части ресурсов, если сертификат считается недействительным.
- Ошибки безопасности. Устаревшие сертификаты могут привести к предупреждениям о безопасности у посетителей сайта.
- Конфликты с новыми сертификатами. При наличии нескольких сертификатов сервер может неправильно выбрать активный.
- Проблемы с кешированием. Старые сертификаты могут храниться в кешах браузеров и прокси, вызывая некорректное поведение HTTPS.
Удаление неактуальных сертификатов помогает поддерживать безопасность, ускоряет работу сайта и снижает вероятность ошибок.
Как проверить установленные SSL-сертификаты на сервере
Чтобы удалить старый сертификат, сначала нужно понять, какие сертификаты установлены на вашем сервере.
1. Проверка через команду OpenSSL (для доступа к серверу по SSH):
openssl s_client -connect yourdomain.ru:443 -showcerts
Эта команда покажет цепочку сертификатов, которые сервер предоставляет клиенту.
2. Проверка конфигурации веб-сервера (Apache, Nginx):
- В Apache проверьте файлы конфигурации виртуальных хостов, обычно в /etc/apache2/sites-enabled/. Там ищите директивы
SSLCertificateFileиSSLCertificateKeyFile. - В Nginx - в конфигурации серверного блока обычно в /etc/nginx/sites-enabled/ - ищите
ssl_certificateиssl_certificate_key.
3. Проверка в панели хостинга. Многие современные панели управления (например, cPanel, Plesk) позволяют видеть и управлять сертификатами через веб-интерфейс.
Удаление старых сертификатов и настройка нового
После определения устаревших сертификатов можно удалить их и правильно настроить новый сертификат.
Удаление сертификатов через SSH
Если у вас есть доступ к серверу по SSH, удалите файлы старого сертификата и ключа, например:
rm /etc/ssl/certs/old_certificate.crt
rm /etc/ssl/private/old_certificate.key
Далее обновите конфигурацию веб-сервера, указав новые пути к сертификату и ключу.
Пример настройки SSL в Nginx с новым сертификатом
server {
listen 443 ssl http2;
server_name yourdomain.ru www.yourdomain.ru;
ssl_certificate /etc/ssl/certs/new_certificate.crt;
ssl_certificate_key /etc/ssl/private/new_certificate.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# Другие настройки
location / {
try_files $uri $uri/ /index.php?$args;
}
}
Автоматизация с помощью плагина WPSSL для WordPress
Для удобства управления сертификатами внутри WordPress можно использовать специализированные плагины, например, WPSSL. Этот плагин позволяет:
- Автоматически обновлять сертификаты Let’s Encrypt.
- Удалять устаревшие сертификаты из настроек WordPress.
- Настраивать редиректы с HTTP на HTTPS без ошибок.
Установка и активация просты, а в настройках есть подробные инструкции для удаления старых сертификатов и обновления новых.
Как проверить, что старые сертификаты действительно удалены и проблем нет
После удаления старых сертификатов и настройки нового важно убедиться, что сайт работает корректно и сертификат валиден.
Проверка через браузер
- Откройте сайт через HTTPS.
- Щёлкните на значок замка в адресной строке.
- Посмотрите детали сертификата - дата действия, издатель, для какого домена он выпущен.
- Убедитесь, что нет предупреждений о безопасности.
Онлайн-сервисы проверки SSL
Используйте инструменты, такие как SSL Labs, которые подробно анализируют сертификат, цепочку доверия и конфигурацию сервера.
Проверка смешанного контента
После смены сертификата важно проверить, что на сайте нет смешанного контента (HTTP ресурсы на HTTPS странице). Для этого можно использовать консоль разработчика в браузере (F12) или плагин Clearfy Pro, который помогает выявлять и устранять такие проблемы.
Использование wpwpssl_delete_old_certificates() для удаления сертификатов в коде
Если вам нужно программно управлять сертификатами, например, в кастомном плагине или теме, можно использовать пример функции для удаления старых сертификатов из базы данных WordPress.
function wpssl_delete_old_certificates() {
global $wpdb;
// Предположим, что сертификаты хранятся в опциях с префиксом 'wpssl_cert_'
$options = $wpdb->get_results("SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE 'wpssl_cert_%'");
foreach ($options as $option) {
// Логика для определения старых сертификатов, например, по дате или версии
$cert_data = get_option($option->option_name);
if (!empty($cert_data['expired']) && $cert_data['expired'] === true) {
delete_option($option->option_name);
}
}
}
// Вызов функции например при активации плагина
register_activation_hook(__FILE__, 'wpssl_delete_old_certificates');
Этот пример показывает общий принцип: хранение данных сертификатов в опциях, проверка и удаление устаревших.
Выводы и рекомендации
Удаление старых SSL-сертификатов – важный этап в управлении безопасностью WordPress сайта. Это помогает избежать ошибок, улучшает производительность и повышает доверие пользователей. Используйте комбинацию ручных действий на сервере, проверок в браузере и автоматизации через плагины.
Полезные ссылки: