{DATE}
Данную статью можете рассматривать как полноценное руководство по прикручиванию SSL-сертификата к nginx. Сам процесс превращения обычного сервера в сервер с поддержкой HTTPS занимает пару строк в файле конфигурации, поэтому чтобы заметка была более полезной, мы рассмотрим как прикрутить к nginx бесплатный Let's Encrypt сертификат и как настроить систему на его автоматическое обновление.
Если вкратце, то Let's Encrypt – это новый центр сертификации (CA), предоставляющий бесплатные и автоматизированные SSL/TLS-сертификаты. На данный момент Let's Encrypt поддерживается большинством современных браузеров, в том числе IE и даже старыми операционными системами такими как Windows Vista. По сути, все, что вам нужно знать – он бесплатный и поддерживает автоматическое обновление.
Установим клиент с помощью команды:
sudo git clone https://github.com/certbot/certbot /opt/letsencrypt
Если git не установлен, то сначала нужно установить его, а потом уже устанавливает клиент для Let's Encrypt (далее certbot). Файлы будут загружены в каталог /opt/letsencrypt.
Данный каталог позволяет серверу Let's Encrypt убедиться, что ваш сайт пытается получить бесплатный SSL-сертификат. Каталог нужно создавать в корне веб-сервера. Например, если корень у вас /var/www/shop, то в нем и нужно создать нужный каталог:
cd /var/www/shop
mkdir .well-known
mkdir .well-known/acme-challenge
find . –type d –exec chown www-data:www-data {} \;
Теперь нужно создать файл конфигурации для вашего домена. Если ваш домен называется example.com, то файл будет называться /etc/letsencrypt/configs/example.com.conf. Содержимое файла:
# ваш домен (хотя и можно создать один сертификат для нескольких доменов # мы рекомендуем создавать отдельные сертификаты и, следовательно, отдельные # файлы конфигурации для разных доменов) domains = example.com # размер ключа rsa-key-size = 2048 # или 4096 # сервер сертификации server = https://acme-v01.api.letsencrypt.org/directory # адрес, на который будут приходить напоминание об обновлении email = my-email # отключаем ncurses UI text = True # задаем путь к каталогу .well-known (см. выше) authenticator = webroot webroot-path = /var/www/shop/
Настало время запросить сам сертификат. Во второй команде вам нужно заменить точное имя файла конфигурации:
cd /opt/letsencrypt $ ./certbot-auto --config /etc/letsencrypt/configs/example.com.conf certonly
Рис. 1. Сертификат сгенерирован
Вывод последней команды изображен на рисунке выше. Как видите, файлы сертификата помещены в каталог /etc/letsencrypt/live/<имя>/. Поскольку скриншот сделан в процессе настройки реального узла, то его адрес затерт (NDA есть NDA). В результате было сгенерировано два файла – файл сертификата fullchain.pem и файл ключа privkey.pem.
Р