===== Настройка веб-сервера на базе стека LEMP в Ubuntu Server 14.04 LTS. Часть 11. Настройка поддержки HTTPS в Nginx, Wordpress и phpBB =====
В [[:unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:how-to-get-free-ssl-certificate-for-site-from-wosign|прошлый раз]] мы получили SSL сертификат. Теперь мы рассмотрим порядок установки сертификата на [[:unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04|веб-сервер на стеке LEMP]].
\\
==== Настройка глобальных параметров Nginx ====
Генерируем файл параметров для протокола обмена ключами Диффи-Хеллмана (по умолчанию его нет, и поэтому нам нужно сгенерировать его отдельно):
sudo openssl dhparam -out /etc/ssl/dhparams.pem 2048
Файл полученного ранее SSL-сертификата скопируем, например в месторасположение **/etc/ssl/mydomain.crt**
При этом не забываем, что закрытый ключ от нашего сертификата мы [[:unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:how-to-get-free-ssl-certificate-for-site-from-wosign|ранее]] разместили здесь: **/etc/ssl/private/mydomain.key**
В файл глобальной конфигурации **nginx** в секцию **http** добавляем общие параметры ssl, которые будут относиться ко всем нашим виртуальным хостам (сайтам):
sudo nano /etc/nginx/nginx.conf
Приведу фрагмент секции **http** с добавленными строками:
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**:
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 ]**
{{ :unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:pasted:20160404-162358.png }}
\\
==== Дополнительная настройка Wordpress ====
Помимо настройки конфигурационного файла виртуального хоста **nginx** для сайта **Wordpress**, в административной панели блога необходимо изменить параметры основных адресов **URL**:
Для этого переходим в **Настройки** > **Общие** и изменяем значения полей **Адрес WordPress (URL)** и **Адрес сайта (URL)** указав в качестве протокола **https**
{{ :unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:pasted:20160404-162417.png }}
\\
==== Проверяем результат ====
Проверяем работу сайтов, обратившись к ним через веб-браузер по протоколу HTTP. Веб-сервер должен будет нас перенаправить на HTTPS.
Дополнительно мы можем проверить правильность наших настроек SSL на предмет всевозможных известных проблем и уязвимостей.
Для этого можно воспользоваться онлайн-сервисом [[https://dev.ssllabs.com/ssltest/analyze.html|SSL Labs]]
Здесь можно ввести имя своего веб-сайта с включённым SSL и запустить процедуру проверки, по результату которой можно будет понять общий уровень текущих настроек.
{{ :unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:pasted:20160404-162454.png }}
----
{{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 04.04.2016 16:07
{{tag>Linux "web server" SSL HTTPS Certificate nginx vhost "virtual host" phpBB phpBB3 Wordpress}}
~~DISCUSSION~~