Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:how-to-install-ssl-certificate-for-https-on-nginx-for-wordpress-phpbb-dokuwiki-sites

Настройка веб-сервера на базе стека LEMP в Ubuntu Server 14.04 LTS. Часть 11. Настройка поддержки HTTPS в Nginx, Wordpress и phpBB

В прошлый раз мы получили SSL сертификат. Теперь мы рассмотрим порядок установки сертификата на веб-сервер на стеке LEMP.


Настройка глобальных параметров Nginx

Генерируем файл параметров для протокола обмена ключами Диффи-Хеллмана (по умолчанию его нет, и поэтому нам нужно сгенерировать его отдельно):

sudo openssl dhparam -out /etc/ssl/dhparams.pem 2048

Файл полученного ранее SSL-сертификата скопируем, например в месторасположение /etc/ssl/mydomain.crt

При этом не забываем, что закрытый ключ от нашего сертификата мы ранее разместили здесь: /etc/ssl/private/mydomain.key

В файл глобальной конфигурации nginx в секцию http добавляем общие параметры ssl, которые будут относиться ко всем нашим виртуальным хостам (сайтам):

sudo nano /etc/nginx/nginx.conf

Приведу фрагмент секции http с добавленными строками:

/etc/nginx/nginx.conf
http {
	...
        ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "EECDH+ECDSA+AESGCM:AES128+EECDH:AES128+EDH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!CAMELLIA:!ADH";
        ssl_session_cache shared:TLS:20m;
        ssl_stapling on;
        #ssl_stapling_verify on;
        resolver 77.88.8.8 77.88.8.1 8.8.8.8 8.8.4.4 valid=300s;
        resolver_timeout 10s;
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Content-Type-Options "nosniff";
 
        ssl_dhparam /etc/ssl/dhparams.pem;
        ssl_certificate /etc/ssl/mydomain.crt;
        ssl_certificate_key /etc/ssl/private/mydomain.key;
	...
}


Настройка виртуальных хостов Nginx

Предположим, мы хотим все клиентские запросы на порт TCP 80 перенаправлять на TCP 443 с использованием SSL. Для этого в файлах конфигурации виртуальных хостов nginx добавляем ещё одну секцию server и добавляем в ней параметры включения SSL. Все основные параметры виртуального хоста переносим в секцию с включённым SSL, а в секции с 80 портом задаём безусловный редирект на HTTPS:

/etc/nginx/sites-available/blog.mydomain.ru
server {
        listen 80;
        server_name blog.mydomain.ru;
        return 301 https://$server_name$request_uri;
}
server {
        listen 443;
        ssl on;
 	...
	# Здесь вся основная конфигурация виртуального хоста
	...
        }
}

По аналогии настраиваем конфигурационные файлы всех виртуальных хостов и перезапускаем nginx

sudo service nginx restart

Обратите внимание на то, что служба должна быть перезапущена без ошибок.


Дополнительная настройка phpBB3

Помимо настройки конфигурационного файла виртуального хоста nginx для сайта phpBB3, при включённом SSL для корректной работы форумного движка, желательно включить опцию поддержки безопасных cookie.

Сделать это можно перейдя по ссылкам:
Административный раздел > Конфигурация сервера > Настройки cookies
Включить опцию Безопасные cookie [ https ]


Дополнительная настройка Wordpress

Помимо настройки конфигурационного файла виртуального хоста nginx для сайта Wordpress, в административной панели блога необходимо изменить параметры основных адресов URL:

Для этого переходим в Настройки > Общие и изменяем значения полей Адрес WordPress (URL) и Адрес сайта (URL) указав в качестве протокола https


Проверяем результат

Проверяем работу сайтов, обратившись к ним через веб-браузер по протоколу HTTP. Веб-сервер должен будет нас перенаправить на HTTPS.

Дополнительно мы можем проверить правильность наших настроек SSL на предмет всевозможных известных проблем и уязвимостей. Для этого можно воспользоваться онлайн-сервисом SSL Labs Здесь можно ввести имя своего веб-сайта с включённым SSL и запустить процедуру проверки, по результату которой можно будет понять общий уровень текущих настроек.


Автор первичной редакции:
Алексей Максимов
Время публикации: 04.04.2016 16:07

Обсуждение

Ваш комментарий:
 

unix-linux/ubuntu/ubuntu-14-04-lts-trusty-tahr/how-to-install-lemp-web-server-on-ubuntu-14-04/how-to-install-ssl-certificate-for-https-on-nginx-for-wordpress-phpbb-dokuwiki-sites.txt · Последние изменения: 04.04.2016 16:28 — Алексей Максимов