Бесплатный SSL сертификат и Nginx c поддержкой HTTP/2

Бесплатный SSL сертификат и Nginx c поддержкой HTTP/2
SSL сертификат — это доверие со стороны пользователя, дополнительный плюсы в ранжировании сайта у поисковой системы Google, а так же заметный плюс перед конкурентами в контексте репутации и многое другое, не говоря о первоначальном смысле — безопасности.
Сегодня мы научимся не только получать бесплатный SSL сертификат, но и настраивать его под Nginx, а финальным результатом будет сайт работающий через HTTPS, а общая оценка через проверки через https://www.ssllabs.com/ssltest/ будет A+, то есть вы и ваш сайт будут в числе 6,2% по версии https://www.trustworthyinternet.org/ssl-pulse/.
Звучит класс, да? Погнали!
Так же обратите внимание на то, что ниже в путях директорий и файлов используется доменное имя ferma.io, которое надо заменить на своё.

Установка Nginx

В нашем случае рассматриваем установку и конфигурацию на VPS (Лично мы пользуемся услугами компании FastVPS и во всех отношениях довольны сотрудничество с ними. Искренне надеемся что ссылку не будут рассматривать, как рекламу, а как рекомендацию реально хорошего поставщика услуг), ОС Debian 8.3.
Непосредственно установка:
1. Добавляем для apt-get репозитории для установки, а для этого открываем на редактирование файл /etc/apt/sources.list и добавляем туда две строки
deb http://nginx.org/packages/mainline/... wheezy nginxdeb-src http://nginx.org/packages/mainline/... wheezy nginx;
2. Скачиваем ключ, добавляем его и обновляем репозиторий
wget http://nginx.org/keys/nginx_signing... && apt-key add nginx_signing.key && apt-get update
3. Устанавливаем Nginx версии 1.9.15 командой
sudo apt-get install nginx=1.9.15-1~wheezy;
4. Генерируем PEM ключ, который потребуется чуть-чуть позже
openssl dhparam -out /etc/nginx/ssl/ferma.io/wosign/dhparam.pem 4096
Ключ генерируется какое-то время и тут требуется запастись терпением.

Получаем бесплатный SSL сертификат

Инструкция максимально простая:
1. Идём на сайт https://www.wosign.com/english/;
2. В верхнем навигационном меню выбираем пункт Products → SSL Certificates → Free SSL Certificate;
3. Переходим по ссылке, которая указана на странице — https://buy.wosign.com/free (Если перейти по ссылке сразу, то иногда открывается английская версия сайта, а иногда китайская);
4. Заполняем данные в соответствии с вашем доменом сайта по аналогии с скриншотом ниже, где в пункте «1» указываем сначала сайт с www. Важно в пункте «2» не ставить checkbox.

Получение SSL сертификата.

5. На следующей странице https://buy.wosign.com/free/#myorder нам требуется нажать на ссылку «Submit CSR»
6. Выбираем «Option 1:Generate CSR by the system» и вводим пароль, который можно сгенерировать на сайте. Требуется 12 символов строчные и прописные буквы, а так же цифры, а вот специальные символы использовать нельзя. Пароль запоминаем, а ещё лучше записываем в укромном месте;
7. После получаем ссылку и скачиваем файлы SSL сертификата;
8. Закачиваем файлы из архива, из папки Nginx в раздел /etc/nginx/ssl/ferma.io/wosign/ с соответствующими названиями;
В плане SSL сертификата всё готово, теперь всё это надо настроить.

Настройка Nginx и общая схема работы

В случае с сайтом Фермы мы для себя решили что все пользователи будут работать через HTTPS по умолчанию, то есть, если посетитель открывает http://ferma.io/, http://www.ferma.io/ или https://www.ferma.io/, то он будет переадресован на https://ferma.io/. Возможно это не лучший из вариантов, но на данный момент схема была выбрана именно такой, но если это некорректно, то обязательно напишите в комментариях почему это некорректно.
У нас всё работает на Nginx mainline версий, которые нельзя считать стабильными, но мы получаем возможность работы через HTTP/2. Разместить файлы можно как вам угодно душе, но лично мы используем директории Nginx.
1. Выполняем команду cd /etc/nginx/conf.d/ — переходим в каталог, где хранятся файлы конфигурации;
2. После требуется создать файл конфигурации для нашего сайта — sudo touch ferma.io.conf, где ferma.io меняем на домен вашего сайта;
3. В файл вставляем следующее содержание, где ferma.io заменяем на ваш домен:
К сожалению Facebook тупит и не позволяет вставить файл конфигурации, а по-этому — https://bitbucket.org/snippets/antn...

Вместо заключения

Безопасность в виде SSL сертификата и работа сайта через HTTPS, а так же ускорение работы за счёт HTTP/2 — как ни крути сплошь одни плюсы. Для многих сайтов наличие работы через HTTPS и HTTP/2 ничего не меняет, но рано или поздно все будут переходить на новый технологии и тут важно снять для себя сливки, так как Google поощряет новые технологии и безопасность пользователей в интернете.

Статью перенесли чтобы не потерять.
Автор статьи Антон Егоров, ссылка на оригинал
статьи на фейсбуке.