Как по-простому настроить работу блога на WordPress по протоколу HTTPS…
Заметка в основном для себя, но если кому-то будет полезной — я только рад 🙂
Итак, в нашем распоряжении небольшой VDS. До сих пор бложик крутился на Apache, но мне захотелось перемен и я перевёл его на Nginx. Это модно, стильно, современно. Для того чтобы старые ЧПУ-ссылки оставались работоспособны, сделал следующее:
1 2 3 4 5 6 |
location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } try_files $uri $uri/ /index.php?q=$uri&$args; } |
Основная фишка в последнем try_files.
Едем дальше — получаем сертификат SSL для сайта, чтоб всё было красивое и зелёное:
Здорово ведь! Т.к. я на своём VDS использую ISPmanager, то я решил воспользоваться самым простым способом — сертификат от Let’s Encrypt. Дело в том, что в ISPmanager имеется специальный модуль для получения и дальнейшего автоматического обновления сертификатов. Но! В этом модуле есть небольшая недоработка, на мой взгляд. Дело в том, что сертификаты для домена, которые выдаёт Let’s Encrypt выдаются для каждого домена отдельно. Т.е. сертификаты для corfrigidus.ru и www.corfrigidus.ru — это два разных сертификата для двух разных доменов. Именно из-за этой особенности у меня и не получилось с первого раза получить сертификаты. Чтобы не наступить на те же грабли необходимо в настройках www-домена очистить поле «Псевдонимы»:
После этого сертификат будет получен буквально за минуту.
Ну и на последок, пришлось слегка откорректировать wp-config.php, добавив следующие строки:
1 2 3 4 5 6 |
define('WP_SITEURL', 'https://corfrigidus.ru'); define('WP_HOME', 'https://corfrigidus.ru'); define( 'FORCE_SSL_ADMIN', true ); if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) { $_SERVER['HTTPS']='on'; } |
Вот и всё!