===== Настройка веб-сервера на базе стека 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~~