Как в nginx настроить бесплатный LetsEncrypt SSL сертификат на Debian или Ubuntu Linux
Как мне защитить мой веб — сервер Nginx шифрованием бесплатный SSL — сертификатом на моем Ubuntu Linux 14.04 LTS или Debian Linux 8.x ?
Вы можете использовать LetsEncrypt сертификат для авторизации на вашем сайте. Так же получить бесплатно TLS / SSL сертификат включая wildcard сертификат для создания зашифрованного сеанса HTTPS для посетителей сайта. В этой статье, я объясню , как использовать Шифрование и установить бесплатный сертификат SSL для веб — сервера Nginx вместе с тем, как правильно развернуть Diffie-Hellman на вашем Nginx сервер, чтобы получить оценку А+.
le.sh ( «li») является клиентом сценарий оболочки для LetsEncrypt бесплатного сертификата. Он очень прост в использовании и прекрасно работает как с Apache и Nginx. Он работает в следующем режиме:
- режим Webroot
- Автономный режим
- режим Apache
- режим Dns
Обратите внимание, что сертификаты LetsEncrypt действительны только в течение 90 дней. Автоматическое обновление функциональность немного сложнее, и нужно настроить через cron. Официальный установщик Nginx еще не функционален.
- По умолчанию конфигурационный файл Nginx : /etc/nginx/sites-available/default
- Nginx каталог для сертификатов SSL: /etc/nginx/ssl/theos.in/
- Nginx DocumentRoot (корень) Путь: /etc/nginx/ssl/theos.in/
- Nginx TLS / SSL Порт: 443
- Наш домен образец: theos.in
- Выделенный внешний IP : 74.86.26.69
Установка Le
Во- первых, установить git и bc с помощью команды apt-get
1 |
sudo apt-get install git bc |
Далее клонировать клиента le, введите следующую команду:
1 2 |
cd /tmp/ git clone https://github.com/Neilpang/le.git |
Чтобы установить le.sh в вашей системе, введите следующую команду:
1 2 |
cd le sudo ./le.sh install |
После установки, необходимо закрыть текущий терминал и вновь открыть , чтобы изменения вступили в силу. Или просто введите следующую команду:
1 |
source ~/.bashrc |
Проверьте (сначала стать суперпользователя):
1 2 |
$ sudo -s # le |
Все следующие команды выполняются в качестве root пользователя т.е. введите следующую команду первой:
1 |
$ sudo -s |
Создайте каталог /.well-known/acme-challenge/
Введите следующую команду:
1 2 3 4 5 |
# mkdir -p /var/www/html/.well-known/acme-challenge/ ###---[ NOTE: Adjust permission as per your setup ]---### # chown -R www-data:www-data /var/www/html/.well-known/acme-challenge/ # chmod -R 0444 /var/www/html/.well-known/acme-challenge/ |
Создать каталог для хранения SSL сертификатов
1 |
# mkdir -p /etc/nginx/ssl/theos.in/ |
Сформировать файл dhparam.pem
Вы должны использовать Diffie-Hellman (DH) группу, независимо от программного обеспечения сервера. Самый простой способ создания новую группу, является использование OpenSSL. Введите следующую команду, чтобы создать файл dhparam.pem:
1 |
# cd /etc/nginx/ssl/theos.in/ |
Я предлагаю вам создать 4096-битовую группу:
1 |
# openssl dhparam -out dhparams.pem 4096 |
Выпуск сертификата для домена theos.in
Синтаксис выглядит следующим образом
1 2 3 |
le issue /DocumentRootPath/ example.com le issue /DocumentRootPath/ example.com www.foo.com,bar.com le issue /DocumentRootPath/ example.com 2048 |
Для того, чтобы выдать сертификат на theos.in и www.theos.in, введите следующую команду:
1 |
# le issue /var/www/html theos.in www.theos.in |
Например, если вы ничего не напишите для “key-length”, он будет использовать длину по умолчанию 2048. В этом примере набор «key-length» 4096
1 |
# le issue /var/www/html theos.in www.theos.in 4096 |
Результат:
Настройка TLS / SSL на веб-сервере Nginx
Редактирование nginx.conf или /etc/nginx/sites-available/default выглядит следующим образом:
1 |
# vi /etc/nginx/sites-available/default |
Добавьте следующие директивы конфигурации
|
Сохраните и закройте файл.
Установите выданный сертификат на веб-сервер Nginx
Введите следующую команду:
1 |
# le installcert theos.in /etc/nginx/ssl/theos.in/theos.in.cer /etc/nginx/ssl/theos.in/theos.in.key /etc/nginx/ssl/theos.in/ca.cer 'service nginx reload' |
Чтобы избежать проблем, введите следующую команду:
1 2 3 4 |
# cd /etc/nginx/ssl/theos.in/ # cat theos.in.cer ca.cer > foo # mv foo theos.in.cer # service nginx reload |
Откройте порт 443
Введите следующую команду UFW:
1 |
# ufw allow proto tcp from any to 74.86.26.69 port 443 |
Проверяем
Введите следующуй URL:
https://theos.in
Или посетите SSL лаборатории , чтобы проверить ваши TLS / SSL конфигурации:
Как продлить сертификат?
Введите следующую команду:
1 |
# le renew theos.in |
Так же для продления сертификата можно использовать cron
1 |
0 0 * * * LE_WORKING_DIR="/root/.le" "/root/.le"/le.sh cron > /dev/null |
Если вы хотите использовать SSL на своем сайте или проекте и не знаете как, обращайтесь [email protected]
На ubuntu 16.04 можно проще настроить. Там certbot есть
Обходились как-то до этого без всяких сертификатов, сейчас приходится бегать по всяким Хострадарам с выпученными глазами, искать хостинговую компанию с недорогим ссл.