Как получить HTTPS бесплатно (NGINX)


Какой у вас сервер

NGINX
1
100%
Apache
0
Голосов нет
Связка из обоих
0
Голосов нет
 
Всего голосов : 1

Как получить HTTPS бесплатно (NGINX)

Сообщение k0ttee »

Как получить HTTPS бесплатно (для NGINX). Мануал подойдет для самого получения сертификата, а подключить и к Apache можно.

Насколько все сложно


Чтобы не возникало вопросов "как мне вернуть как было", вот инструкция как пользоваться этой инструкцией:
0.) придется на время останавливать NGINX
1.) перед началом - сделать бэкап
2.) сначала прочитать - на втором чтении делать
3.) если страшно - взять для первой попытки пустой сайт
Это не бред сумасшедшего, который написал иструкцию для инструкции, а способ не просрать работающие сайты - я вас предупредил.

Подготовка


0.) если не установлен клиент ГитХаба - установить
Код: Выделить всё
sudo apt-get update
sudo apt-get install git

1.) клонировать себе репозиторий letsencrypt и перейти в его директорию
Код: Выделить всё
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

2.) запустить враппер letsencrypt-auto
Код: Выделить всё
./letsencrypt-auto --help

Если возникнет ошибка (версия ядра может не поддерживаться) - нажмите Enter.
версия ядра может не поддерживаться.png
версия ядра может не поддерживаться.png (21.69 КБ) Просмотров: 971


Создание сертификата


Рекомендуется заталкивать поддомены в один сертификат. Разбивка по файлам для разных доменов это хорошо (чтобы поломка общего файла не сломала все сайты). Но поддомены удобнее заталкивать в сертификат их домена.

Вот пример для домена site.ru и вместе с ним blog.site.ru
Код: Выделить всё
./letsencrypt-auto certonly --standalone -d site.ru -d blog.site.ru

Одинокий site.ru делается так
Код: Выделить всё
./letsencrypt-auto certonly --standalone -d site.ru


Нужно будет ввести почту, согласиться с правилами.
мыло.png
мыло.png (13.45 КБ) Просмотров: 971

правила.png
правила.png (22.55 КБ) Просмотров: 971

Если занят 443 или 80 порт, придется временно выключить NGINX.
порт занят.png
порт занят.png (18.55 КБ) Просмотров: 971


Отключается он командой
Код: Выделить всё
nginx -s stop


Продолжаем и получаем... Важное примечание.
важно об аккаунте.png
важно об аккаунте.png (13.29 КБ) Просмотров: 971

Еще раз запускаем процедуру (сейчас NGINX остановлен и ничего не мешает)
Нажмите вверх, чтобы появилась прошлая команда и повторно выполните ее.

Когда будет готово - увидим сообщение о том где сгенерированный сертификат и ключ.
поздравляем.png
поздравляем.png (16.71 КБ) Просмотров: 971


Скорее всего файл находится там (подставить имя вашего домена)
Код: Выделить всё
/etc/letsencrypt/live/site.ru/fullchain.pem

Еще тут написано когда истекает срок годности (год-месяц-день)
Код: Выделить всё
2017-01-30

Эту дату стоит добавить себе в напоминания календаря.

Теперь запустим остановленный NGINX, чтобы сервер не лежал
Код: Выделить всё
nginx


Дальше нужно внести информацию о сертификате в конфиг (имя домена вписываем свое).
Код: Выделить всё
nano /etc/nginx/sites-enabled/site.ru


Пример конструкции (site.ru переписать на свой домен)
Код: Выделить всё
server {
  listen 443 ssl http2;
  server_name site.ru;

  ssl on;
  ssl_certificate     /etc/letsencrypt/live/site.ru/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
}

Внимательные читатели заметили, что я сразу добавил http2 (а чего мелочиться, если поддерживается).

Тестим конфиги
Код: Выделить всё
nginx -t

Если тест пройден, перечитываем конфиги
Код: Выделить всё
nginx


Проверяем, чтобы в браузере все открывалось...
И, кому-то придется морочиться со склейкой (у меня склеено так):
Код: Выделить всё
http://site.ru => https://site.ru
http://www.site.ru => https://site.ru
https://www.site.ru => https://site.ru


P.S:
Не забываем скопировать важную директорию, о которой было important note.

Готово. Теперь можно три месяца думать о единорогах. О продлении (и ее автоматизации) будет отдельная статья.

Сбор на вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
ltc: LTsZ8f261j5qS5QUjn7ihzr37hziTvXeA4

За это сообщение автора k0ttee поблагодарили: 2
Aman, birds
Аватара пользователя
k0ttee

 
Группа: Специалист ruSEO
Сообщения: 12039
Рефералы: 2
Зарегистрирован: 02 май 2014
Средств на руках: 5.85
Re: Как получить HTTPS бесплатно (NGINX)

Сообщение msd777 »

k0ttee, серьёзно занялся вопросом SSL сертификата. Кстати переход сайта на https в Яндекс и Гугл имеет отличия. Обоим сразу не угодишь.
Яндекс рекомендует сразу не делать редиректы с http на https, а подождать пока робот проиндексирует оба варианта, а только потом редиректить для склейки. Иначе часть страниц в процессе перехода выпадет на время из индекса. Вообще в Яндекс будет просадка на пару-тройку недель минимум.
А вот для Гугл редирект с http на https желательно делать сразу и тут будет плавная замена, но скорее всего медленная. У меня две последние страницы как то встали и никак не склеются у Гугла.

А на вопрос о сервере такой ответ:
Веб-сервер LiteSpeed
На 67% быстрее nginx и на 533% быстрее
Apache 2.4. Используется только
на хостинге Fozzy
My Name is the brand! :bomb:

За это сообщение автора msd777 поблагодарили: 3
Aman, birds, k0ttee
Аватара пользователя
msd777
Заблокирован
 
Группа: Заблокирован
Сообщения: 1825
Зарегистрирован: 03 ноя 2011
Средств на руках: 0.00
Статус: не указан
Спонсор
 
Re: Как получить HTTPS бесплатно (NGINX)

Сообщение k0ttee »

переход сайта на https в Яндекс и Гугл имеет отличия

Я делал для нового домена, который почти год висел в индексе одной единственной страницей.

Добавлено спустя 1 час 49 минут 9 секунд:
Для проверки по какой версии протокола идет соединение, можно добавить
Код: Выделить всё
<?php echo $_SERVER['SERVER_PROTOCOL']; ?>
<br>
<?php echo $_SERVER['HTTPS']; ?>

Если на выхлопе увидите HTTP/2.0 вместе с on значит вы красавчик.
Сбор на вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
ltc: LTsZ8f261j5qS5QUjn7ihzr37hziTvXeA4
Аватара пользователя
k0ttee

 
Группа: Специалист ruSEO
Сообщения: 12039
Рефералы: 2
Зарегистрирован: 02 май 2014
Средств на руках: 5.85
Re: Как получить HTTPS бесплатно (NGINX)

Сообщение k0ttee »

Возможные трудности:

Их ресурс может быть недоступен

При этом создание/обновление сертификата подумает-подумает, да и выплюнет
Код: Выделить всё
смотри логи в папочке /var/log/letsencrypt" или сходи на https://letsencrypt.status.io

Решается терпением и количеством попыток. Или временным выключением NGINX / Apache (чтобы освободить 80-й порт для установки соединения).

Добавить поддомены в сертификат

Допустим надо добавить в него поддомен с www. Не проблема! Создаем, на что получим выбор "добавить в существующий" или "отменить".
expand.png
expand.png (37.17 КБ) Просмотров: 912

При пересоздании сертификат продляется (но не ленитесь проверять срок действия).

Много сайтов на одном IP

NGINX последних версий (на момент написания статьи - версия 1.10.0) поддерживает технологию SNI (Server Name Indication), которая позволяет делать сертификаты для нескольких доменов на одном IP.
Для тестов многосайтовости я быстренько завел бесплатный домен sslcat.tk
При попытке открыть IP-сервера - не открывается ничего, прикрутить HTTPS к голому адресу сервера - нельзя.

Тестирование

Для тестов я испльзовал такой файлик
Код: Выделить всё
<p><b>domain is:</b> <?php echo $_SERVER['HTTP_HOST']; ?>
<p><b>protocol is:</b> <?php echo $_SERVER['SERVER_PROTOCOL']; ?>
<p><b>https is:</b> <?php echo $_SERVER['HTTPS']; ?>


На выхлопе видим:

domain is: sslcat.tk
protocol is: HTTP/2.0
https is: on

Удаление

Для удаления ненужных сертификатов - удалять соответствующие pem-файлы.
Сбор на вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
ltc: LTsZ8f261j5qS5QUjn7ihzr37hziTvXeA4
Аватара пользователя
k0ttee

 
Группа: Специалист ruSEO
Сообщения: 12039
Рефералы: 2
Зарегистрирован: 02 май 2014
Средств на руках: 5.85
Re: Как получить HTTPS бесплатно (NGINX)

Сообщение k0ttee »

Пока не забыл, вот топик с инструкцией о продлении - Как продлить Lets Encrypt (в нем будет ссылка на то, как автоматизировать продление).
Сбор на вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
ltc: LTsZ8f261j5qS5QUjn7ihzr37hziTvXeA4
Аватара пользователя
k0ttee

 
Группа: Специалист ruSEO
Сообщения: 12039
Рефералы: 2
Зарегистрирован: 02 май 2014
Средств на руках: 5.85

Вернуться в Железо и софт

 


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30

cron