Skip to main content

Nginx Let’s Encrypt на Ubuntu 18.04

Думаю ни для кого не секрет, что уже вышла новая версия Ubuntu 18.04 (Bionic Beaver). Некоторые из вас обновились, некоторые уже поставили, но сегодня речь не об этом. Сегодня мы с вами поставим на свежую систему веб-сервер Nginx с бесплатным HTTPS.
В этой статье мы будем использовать приложение Certbot для получения бесплатного сертификата для Nginx и автоматическое его обновление.

Что нам нужно для начала

  • Сервер с Ubuntu 18.04 (Хотя воркфлоу подходит и для предыдущих версий ОС). Я буду использовать виртуальную машину с ОС Ubuntu 18.04.
  • Нужен зарегистрированный домен. Я буду использовать домен текущего сайта — adminnotes.info
  • Настроенные ДНС записи на домен adminnotes.info и www.adminnotes.info.
  • Последняя версия Nginx на сервере

Установка Certbot

Первым шагом в получении сертификата будет установка приложения Certbot. Он нужен нам для получения и автоматического продления сертификата.

Добавляем репозиторий:

sudo add-apt-repository ppa:certbot/certbot

Обновим список пакетов:

sudo apt-get update

Установим certbot:

sudo apt-get install python-certbot-nginx

Конфигурация Nginx

Мы будем получать сертификаты сразу для двух доменов — adminnotes.info и www.adminnotes.info. Потому, откроем файл конфигурации и внесем правки, у меня это:


nano /etc/nginx/sites-available/adminnotes.info

Найдем там строку server_name и проверим, чтобы в ней были наши домены, если нет — дописываем.

...
server_name adminnotes.info www.adminnotes.info;
...

Конфигурацию поправили, перезагрузим nginx:

service nginx restart

Если ошибок нет (не должно быть :)), можем приступать к получению сертификата.

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

Certbot предоставляет возможность получить сертификат различными способами и под различные приложения (Nginx, Apache, etc.) используя плагины. Мы будем использовать плагин —nginx, так как у нас установлен Nginx в качестве веб сервера.

sudo certbot --nginx -d adminnotes.info -d www.adminnotes.info

-d этот параметр указывает, для какого домена нужен сертификат.

Если это был первый запуск команды, вам предложат принять правила и ввести ваш контактный email. После ввода данных вы получите следующее сообщение:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Выбираем вариант 1 или 2 и нажимаем ENTER. После этого сервер будет перезагружен и новая конфигурация вступит в силу. Если все хорошо, вы получите сообщение:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/adminnotes.info/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/adminnotes.info/privkey.pem
   Your cert will expire on 2018-07-23. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - 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

На этом установка и активация сертификатов закончена.

Автоматическое продление сертификата

Стоит помнить о том, что сертификат действителен всего лишь 90 дней и по истечению этого периода, его нужно продлить. Пакет, который мы установили уже предоставляет нам скрипт, который будет автоматически продлевать сертификаты. Он запускается 2 раза в день. Для ручного продления можно использовать команду:


sudo certbot renew --dry-run

 

Таким простым способом мы можем получить для сайта бесплатный SSL сертификат

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *