Краткая инструкция по настройке https с помощью SSL сертификата от Let’s Encrypt на ОС Ubuntu с веб-сервером Nginx. Сначала прочтите всё до конца, а потом выполняйте.
Если что-то не получится, обязательно задавайте вопросы в комментариях. Полная официальная инструкция на английском доступна на readthedocs.org.
После успешного перехода интернета на защищенный https протокол внешние ресурсы (например, js, тэги <img>) надо брать только по https, иначе замо́чек в адресной строке браузера не будет зелёным.
Установка SSL сертификата от Let’s Encrypt
Устанавливаем их программу. Для определённости будем считать, что мы находимся в /home/user/.
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 на работу по протоколу https
Настройка домена в Nginx
Пора настроить Nginx. Замените mydomain.com на своё доменное имя.
/etc/nginx/sites-available/default
# Перенаправляем http://(www.)mydomain.com на https://mydomain.com
server { server_name mydomain.com www.mydomain.com; return 301 https://$server_name$request_uri;}
# Если есть поддомен. Если поддоменов нет, то следующие 3 строки не нужны
server { server_name subdomain.mydomain.com; return 301 https://$server_name$request_uri; }
server { listen 443 ssl default_server; listen [::]:443 ssl default_server; ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Всё остальное, что было в секции server # …}
Настройка поддомена в Nginx
Если имеется поддомен, например, subdomain.mydomain.com, ему нужно указать такие настройки:
/etc/nginx/sites-available/subdomain
server { listen 80; listen [::]:80; listen 443 ssl; listen [::]:443 ssl; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# Укажите свой адрес для root
root /var/www/subdomain; index index.html index.htm; server_name subdomain.mydomain.com; ssl_certificate /etc/letsencrypt/live/subdomain.mydomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/subdomain.mydomain.com/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } #
Всё остальное, что было в секции server # …}
Готово! Снова запускаем Nginx:
root ~ #service nginx start
Обновление сертификата
Через какое-то время придёт уведомление о том, что срок действия сертификата истлевает. Чтобы обновить его, нужно сделать следующие действия.
user ~ $cd ~/letsencrypt/root letsencrypt
#root letsencrypt #root letsencrypt #service nginx stop
./letsencrypt-auto renew
service nginx start
Проверка статуса SSL сертификата от Letsencrypt
Чтобы узнать статус и срок действия своего сертификата, можно в браузере зайти на сайт и щёлкнуть на иконку замка́ в адресной строке. В Safari, например, надо будет ещё нажать на «Show Certificate», а в Chrome дату можно увидеть так: щёлкнуть на замо́чек → вкладка Connection → Certificate information → General → Expires on.
Так же для установки сертификата можно воспользоваться утилитой от certbot она имеется в стандартных рeпозиториях Debian.
Возможно вас заинтересует недорогой, проверенный, честный и очень надежный хостинг отличное соотношение цены и качества от FirstVDS.
Цены на виртуальные выделенные сервера. Стремительная активация сервера, гибкие условия и заманчивые предложения по оплате.