Краткая инструкция по настройке https с помощью Let’s Encrypt на ОС Ubuntu с вебсервером Nginx. Сначала прочтите всё до конца, а потом выполняйте. Написано по мотивам рекомендаций от hombit. Если что-то не получится, обязательно задавайте вопросы в комментариях. Полная официальная инструкция на английском доступна на readthedocs.org.
После успешного перехода на https внешние ресурсы (например, js, тэги <img>) надо брать только по https, иначе замо́чек в адресной строке не будет зелёным.
Устанавливаем их программу. Для определённости будем считать, что мы находимся в /home/user/
.
user ~ $ | cd git clone https://github.com/letsencrypt/letsencrypt |
Останавливаем Nginx:
root ~ # | service nginx stop |
Теперь в роли вебсервера сможет выступить программа, которую мы только что установили. Это нужно для того, чтобы их сервер мог зайти на указанный клиентом домен и убедиться в том, что таким образом можно попасть на его машину.
Запускаем их программу в первый раз (с правами root), чтобы она установила все зависимости из репозиториев:
user ~ $ | cd letsencrypt |
root letsencrypt # | ./letsencrypt-auto --help |
Запускаем программу во второй раз и запрашиваем сертификат (опять с правами root). Замените mydomain.com
на своё доменное имя.
root letsencrypt # | ./letsencrypt-auto certonly -d mydomain.com |
Действуем аналогично, если есть поддомен:
root letsencrypt # | ./letsencrypt-auto certonly -d subdomain.mydomain.com |
Программа попросит электронную почту. Она пригодится для:
После выполнения программа сообщит, что установила сертификаты в /etc/letsencrypt/live/mydomain.com
.
Пора настроить Nginx
. Замените mydomain.com
на своё доменное имя.
1 | # Перенаправляем http://(www.)mydomain.com на https://mydomain.com |
Если имеется поддомен, например, subdomain.mydomain.com, ему нужно указать такие настройки:
1 | server { |
Готово! Снова запускаем Nginx:
root ~ # | service nginx start |
Через какое-то время придёт уведомление о том, что срок действия сертификата истлевает. Чтобы обновить его, нужно сделать следующие действия.
user ~ $ | cd ~/letsencrypt/ |
root letsencrypt # | service nginx stop ./letsencrypt-auto renew service nginx start |
Чтобы узнать статус и срок действия своего сертификата, можно в браузере зайти на сайт и щёлкнуть на иконку замка́ в адресной строке. В Safari, например, надо будет ещё нажать на «Show Certificate», а в Chrome дату можно увидеть так: щёлкнуть на замо́чек → вкладка Connection → Certificate information → General → Expires on.