Эта инструкция, в первую очередь, должна быть интересна новичкам.
Если у вас все настройки установлены по умолчанию, можно смотреть те пути, которые я привёл. То есть, если вы используете систему, установленную с помощью скрипта Bitrix environment на операционной системе CentOS 6.X. Если же нет, вы и сами знаете где что лежит.
Установка
Первое, что необходимо сделать — установить git:
# yum install git
Далее переходим в директорию /tmp:
# cd /tmp
С помощью git скачиваем файлы Let’s Encrypt. Сам скрипт теперь называется certbot:
# git clone https://github.com/certbot/certbot
Переходим в скачанную директорию:
# cd certbot
На всякий случай, даем права на выполнение для файла скрипта:
# chmod a+x ./certbot-auto
Получение сертификата
Далее следует команда непосредственно получения сертификата:
# ./certbot-auto certonly --webroot --agree-tos --email mypost@my-domain.ru -w /home/bitrix/www/ -d my-domain.ru -d www.my-domain.ru
--webroot — так как автоматическая установка для nginx пока не надежна, используем этот ключ;
--agree-tos — соглашаемся с лицензионным соглашением;
--email mypost@my-domain.ru — указываем свой e-mail. В дальнейшем он может пригодиться для восстановления своего аккаунта;
-w /home/bitrix/www — указываем корневую директорию сайта;
-d my-domain.ru — наш домен. так же можно указывать и поддомены, например -d site.my-domain.ru.
После этого скрипт начнет работу и предложит установить недостающие пакеты. Соглашаемся и ждём.
Если всё завершится успешно, вы увидите сообщение:
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/my-domain.ru/fullchain.pem. Your
cert will expire on 2016-08-21. To obtain a new version of the
certificate in the future, simply run Certbot again.
- If you lose your account credentials, you can recover through
e-mails sent to mypost@my-domain.ru.
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Сертификаты установлены, осталось только указать nginx'у, где они лежат.
Настройка
Открываем конфигурационный файл ssl.conf:
# vim /etc/nginx/bx/conf/ssl.conf
Если у вас уже были установлены сертификаты, удаляем или комментируем строки с ними и вставляем новые:
ssl_certificate /etc/letsencrypt/live/my-domain.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my-domain.ru/privkey.pem;
Не забываем включить ssl, если этого не было сделано ранее:
ssl on;
keepalive_timeout 70;
keepalive_requests 150;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
После этого перезапускаем nginx:
# service nginx reload
Если он не выдал никаких ошибок, значит всё в порядке. Можно зайти на сайт и посмотреть что получилось.
Обновление
Сертификат выдается на 90 дней, так что после этого срока нужно будет его обновить. Делается это командой:
# certbot-auto renew
Её так же можно поставить в cron.
На этом всё. Для составления инструкции я использовал статью Yet another инструкция по получению ssl-сертификата Let's Encrypt и официальный гайд.
Комментарии (17)
v0rdych
24.05.2016 11:47+4# service nginx restart
Так он же упадет после этого, если с конфигом что-то не так.
# service nginx reload исключительно.
Плюсом, сам letsencrypt вроде как не рекомендует прописывать прямые пути в конфигах nginx на /etc/letsencrypt/… а копировать их в скрипте крона, который обновляет сертификаты.geolaz
24.05.2016 12:19# service nginx reload исключительно.
Спасибо, исправил.
сам letsencrypt вроде как не рекомендует прописывать прямые пути в конфигах nginx
В инструкции этого не увидел, но, думаю, можно и так и эдак.
andreymal
25.05.2016 00:50В live же вроде всегда свежие симлинки, ссылаться на которые вполне можно, не?
v0rdych
25.05.2016 11:41Пожалуй, я и правда был неправ. Почему-то мне запомнилось по выводу скрипта, что так делать не стоит, однако ж перечитал официальную документацию:
All generated keys and issued certificates can be found in /etc/letsencrypt/live/$domain. Rather than copying, please point your (web) server configuration directly to those files (or create symlinks)
Явно говорят можно, и даже рекомендовано.
mwambanatanga
24.05.2016 12:19-1С помощью git скачиваем файлы Let’s Encrypt. Сам скрипт теперь называется certbot:
Вообще-то, наоборот, это раньше certbot назывался официальными скриптом. С их вебсайта:
Certbot was developed by EFF and others as a client for Let’s Encrypt and was previously known as “the official Let’s Encrypt client”
Теперь официальным клиентом считается github.com/letsencrypt/letsencryptKju
24.05.2016 14:15Хм ваша ссылка редиректиктит как раз на https://github.com/certbot/certbot. Да и официальный сайт (https://letsencrypt.org/getting-started/) отправляет на Certbot
Ualde
24.05.2016 13:22+2https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04
статья куда серьезнее и без привязки к «Битрикс»
questor
24.05.2016 14:43Хм, той статье уже три месяца. Пошёл дописал в комментах свой опыт про обновление сертификата. Тоже не менее важный процесс, чем первичная установка. Вкратце: всё работает само, даже и писать особо-то нечего.
pkuutn
25.05.2016 00:50Я не могу сказать, что очень уж продвинутый админ
Но то, что их скрипт тянет за собой build stack, мне нравится не очень.
И вообще скрипт очень уж… самоуверен, чтоли.
as3k
25.05.2016 12:36Вы stapling тоже не смогли настроить?
Мучался и гуглил сам около 2 дней — не смог.
zenn
Прочитал статью до конца, думаю вполне годный материал для новичков(хоть подобные материалы уже и есть на хабре). Но назрел 1 вопрос по релевантности заголовка статьи к ее содержимому — "а где и причем тут битрикс?".
geolaz
Ну я ставил сертификаты именно на сервер с битрикс, и в тексте приведено где указываются новые сертификаты в настроенной на битрикс системе.
По сути, если разбираться в nginx, итак понятно, где и что надо указать.
zenn
Я думаю это не имеет значения, т.к. в системе могло быть что угодно, хоть набор скриптов на perl'e. Дело в том, что эта настройка затрагивает только nginx и генерацию letsencrypt. В битриксе вы не делаете абсолютно ничего.
П.с. — для интереса, пройдите поиском по своему тексту на слова «битрикс» — их там ровно 0 не считая заголовок.