Настройка SSL — обязательный этап при создании современного сайта на WordPress. Однако процесс отличается в зависимости от используемого веб-сервера. В этой статье разберём, как правильно настроить SSL для WordPress на трёх популярных серверах: Apache, Nginx и LiteSpeed. Также рассмотрим частые ошибки и способы их устранения.
Почему важно правильно настроить SSL для WordPress
SSL (Secure Sockets Layer) обеспечивает шифрование данных между браузером пользователя и сервером, что важно для безопасности, доверия посетителей и SEO. Неправильная настройка SSL может привести к ошибкам смешанного контента, проблемам с редиректами или снижению производительности.
Правильная конфигурация зависит не только от установки сертификата, но и от корректной настройки веб-сервера и WordPress. Ниже рассмотрим, как реализовать это на разных платформах.
Настройка SSL для WordPress на сервере Apache
Установка SSL-сертификата
Для Apache обычно используется модуль mod_ssl. После получения сертификата (например, от Let's Encrypt) его нужно разместить в директории на сервере, например:
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pemВ файле конфигурации виртуального хоста Apache (обычно /etc/apache2/sites-available/example.com.conf) добавьте секцию SSL:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
# Редирект с HTTP на HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
<Directory /var/www/html>
AllowOverride All
</Directory>
</VirtualHost>Обеспечение правильной работы WordPress с HTTPS
В файле wp-config.php добавьте следующий код, чтобы WordPress корректно определял протокол:
function wpssl_ru_force_ssl() {
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
$_SERVER['HTTPS'] = 'on';
}
}
add_action('init', 'wpssl_ru_force_ssl');Этот код помогает при использовании прокси-серверов, когда переменная HTTPS может быть не установлена.
Устранение ошибок смешанного контента
Добавьте в .htaccess правила для перенаправления всех запросов на HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Для исправления смешанного контента используйте плагин Clearfy Pro, который позволяет автоматически исправлять ссылки с HTTP на HTTPS.
Настройка SSL для WordPress на сервере Nginx
Конфигурация SSL
Файл конфигурации Nginx для сайта (например, /etc/nginx/sites-available/example.com) должен содержать следующий блок:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}Особенности настройки HTTP/2 и HTTP/3
Обратите внимание на директиву listen 443 ssl http2; — она включает поддержку HTTP/2, которая ускоряет загрузку сайта через HTTPS.
Для внедрения HTTP/3 потребуется дополнительная настройка сервера и поддержка QUIC-протокола, что пока не повсеместно доступно, но уже можно реализовать на LiteSpeed или в Nginx с экспериментальными модулями.
Исправление смешанного контента и редиректов
Для автоматизации устранения смешанного контента можно использовать плагин WPRemark, который помогает быстро находить и исправлять ссылки с незащищённым протоколом.
Настройка SSL для WordPress на LiteSpeed
Особенности LiteSpeed
LiteSpeed — это современный высокопроизводительный сервер, который поддерживает SSL и HTTP/3 из коробки. Для его настройки зачастую используется панель управления, например, CyberPanel или DirectAdmin.
Конфигурация SSL в LiteSpeed
Основная настройка происходит в интерфейсе панели управления, где нужно загрузить сертификат и приватный ключ. Для ручной настройки можно отредактировать конфигурацию в файлах:
listener SSL {
address *:443
secure 1
keyFile /path/to/privkey.pem
certFile /path/to/fullchain.pem
}LiteSpeed автоматически обрабатывает редиректы и заголовки безопасности, но для WordPress нужно удостовериться, что сайт работает по HTTPS.
Интеграция с WordPress
Для корректного определения HTTPS в WordPress используйте тот же код, что и для Apache:
function wpssl_ru_force_ssl() {
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
$_SERVER['HTTPS'] = 'on';
}
}
add_action('init', 'wpssl_ru_force_ssl');Это особенно важно, если LiteSpeed работает за прокси.
Практические советы и проверка работы SSL
Тестирование сертификата
После настройки SSL проверьте корректность сертификата с помощью сервисов:
- SSL Labs — глубокий анализ SSL;
- Why No Padlock? — проверка смешанного контента;
- Jitbit SSL Check — быстрый тест.
Используйте эти инструменты, чтобы убедиться в отсутствии ошибок и уязвимостей.
Принудительное использование HTTPS в WordPress
Чтобы все ссылки генерировались с HTTPS, в wp-config.php добавьте:
define('FORCE_SSL_ADMIN', true);Это гарантирует, что админ-панель и REST API работают через защищённое соединение.
Использование плагинов для упрощения настройки SSL
Если хотите автоматизировать процесс, можно использовать бесплатный плагин Really Simple SSL. Он автоматически настроит большинство параметров и исправит смешанный контент.
Для более продвинутого управления и оптимизации рекомендуем обратить внимание на Clearfy Pro, который включает дополнительные инструменты по безопасности и оптимизации.
Заключение
Правильная настройка SSL на разных типах серверов требует знания особенностей каждого из них. Apache, Nginx и LiteSpeed имеют свои нюансы в конфигурации, которые важно учитывать для стабильной и безопасной работы WordPress. Использование проверенных плагинов и инструментов поможет избежать ошибок и упростит поддержку HTTPS.