Возможность в WordPress обеспечения принудительного доступ к административной панели по SSL почему-то очень редко используется несмотря на явные преимущества, которые она дает.
Пересылать пароли по открытому соединению плохо. Это прописная истина. Покупать сертификат на каждый сайт — это дорого, особенно если их много. Пользоваться самоподписанными сертификатами то-же не очень хорошо — многих посетителей отпугнет страшная картинки в браузере с просьбой подтвердить исключения для недоверенного сертификата.
В WordPress существует возможность перейти на протокол HTTPS только на время логина и работы с административной панелью, что очень удобно, так как обычные пользователи работают по прежнему через HTTP.
Эта возможность обеспечивается двумя системными переменными WP:
- FORCE_SSL_ADMIN
- FORCE_SSL_LOGIN
Начиная с версии 4.0 разработчики настоятельно рекомендуют использовать только FORCE_SSL_ADMIN.
Для начала генерируем самоподписанный сертификат:
sudo openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/example.com.pem -keyout /etc/ssl/private/example.com.key
На вопрос «Common Name (e.g. server FQDN or YOUR name) []:» необходимо ввести имя сайта, для которого создается сертификат, например www.example.com. На остальные вопросы можно ответить по умолчанию, хотя рекомендуется все-таки предоставить информацию.
Далее сообщаем о сертификате Apache или Nginx. Для Apache этот процесс хорошо описан в статье «Настройка HTTPS в Apache«, а для Nginx в файл конфигурации виртуального сервера добавляем 3 строчки:
listen 443 ssl; ssl_certificate /etc/ssl/certs/example.com.pem; ssl_certificate_key /etc/ssl/private/example.com.key;
Далее открываем любимым редактором текста файл конфигурации WordPress wp-config.php и перед строчкой
/* Это всё, дальше не редактируем. Успехов! */
вставляем оператор define:
define(‘FORCE_SSL_ADMIN’, true);
Перестартуем сервис Apache или Nginx и все должно работать.
Кроме всех прочих преимуществ работы с админкой через SSL выявилось еще одно: практически прекратились попытки подбора паролей в wordpress — видно самоподписанный сертификат вгоняет боты в ступор.