Notice: iconv() [function.iconv]: Detected an illegal character in input string in /home/dkwsorgu/domains/dkws.org.ua/public_html/demo/article.php on line 21

Notice: iconv() [function.iconv]: Detected an illegal character in input string in /home/dkwsorgu/domains/dkws.org.ua/public_html/demo/library.php on line 218

Notice: iconv() [function.iconv]: Detected an illegal character in input string in /home/dkwsorgu/domains/dkws.org.ua/public_html/demo/library.php on line 192

Notice: iconv() [function.iconv]: Detected an illegal character in input string in /home/dkwsorgu/domains/dkws.org.ua/public_html/demo/library.php on line 169
Как прикрутить SSL Рє серверу nginx - Сайт Дениса Колисниченко
 

Смотрим плавность хода с помощью BMW Rheingold

Всем знакома ситуация, когда двигатель немного "троит", но пропусков зажигания нет...

Дельта-синхронизация крипто-дисков

Существуют разные способы зашифровать "облако". Один из них - поместить в облако крипто-диск. В предыдущей статье мы писали, почему это не всегда удобно.

Как прикрутить SSL к серверу nginx


Данную статью можете рассматривать как полноценное руководство по прикручиванию SSL-сертификата к nginx. Сам процесс превращения обычного сервера в сервер с поддержкой HTTPS занимает пару строк в файле конфигурации, поэтому чтобы заметка была более полезной, мы рассмотрим как прикрутить к nginx бесплатный Let's Encrypt сертификат и как настроить систему на его автоматическое обновление.

Что такое Let's Encrypt

Если вкратце, то Let's Encrypt – это новый центр сертификации (CA), предоставляющий бесплатные и автоматизированные SSL/TLS-сертификаты. На данный момент Let's Encrypt поддерживается большинством современных браузеров, в том числе IE и даже старыми операционными системами такими как Windows Vista. По сути, все, что вам нужно знать – он бесплатный и поддерживает автоматическое обновление.

Установка клиента Let's Encrypt

Установим клиент с помощью команды:

sudo git clone https://github.com/certbot/certbot /opt/letsencrypt

Если git не установлен, то сначала нужно установить его, а потом уже устанавливает клиент для Let's Encrypt (далее certbot). Файлы будут загружены в каталог /opt/letsencrypt.

Создаем каталог webroot-path/.well-known/acme-challenge/

Данный каталог позволяет серверу 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.

Настройка nginx

Р