Установка бесплатного SSL-сертификата в стек LEMP с помощью Let's Encrypt



Попробуйте наш инструмент устранения неполадок

Let’s Encrypt - это совместный проект Linux Foundation, открытый центр сертификации, предоставляемый исследовательской группой Internet Security. Бесплатно для всех, у кого есть доменное имя, использовать Let's Encrypt для получения доверенного сертификата. Возможность автоматизировать процесс обновления, а также работать над упрощением установки и настройки. Помогите защитить сайты и продвигайте методы безопасности TLS. Поддерживайте прозрачность, поскольку все сертификаты доступны для проверки. Разрешить другим использовать их протоколы выдачи и продления в качестве открытого стандарта.



По сути, Let’s Encrypt пытается избавить безопасность от нелепых ухищрений, сделанных крупными организациями для коммерческих организаций. (Можно сказать, что я верю в открытый исходный код, и это в лучшем случае открытый исходный код).



Есть два варианта: загрузить пакет и установить из репозиториев или установить оболочку certbot-auto (ранее letsencrypt-auto) напрямую из letsencrypt.



Скачать из репозиториев

sudo apt-get install letsencrypt -y

После завершения установки пришло время получить сертификат! Мы используем полностью автономный метод, порождая экземпляр сервера только для получения вашего сертификата.



sudo letsencrypt certonly –standalone –d example.com -d subdomain.example.com -d othersubdomain.example.com

ssl1

Введите свой адрес электронной почты и согласитесь с условиями использования. Теперь у вас должен быть действующий сертификат для каждого из введенных вами доменов и поддоменов. Каждый домен и субдомен подвергаются проверке, поэтому, если у вас нет записи DNS, указывающей на ваш сервер, запрос не будет выполнен.

Если вы хотите протестировать процесс перед получением фактического сертификата, вы можете добавить –test-cert в качестве аргумента после certonly. Примечание: –test-cert устанавливает недействительный сертификат. Вы можете делать это неограниченное количество раз, однако, если вы используете живые сертификаты, существует ограничение скорости.

ssl2

Домены с подстановочными знаками не поддерживаются и, похоже, не будут поддерживаться. Причина в том, что, поскольку процесс сертификата бесплатный, вы можете запросить столько, сколько вам нужно. Кроме того, в одном сертификате может быть несколько доменов и поддоменов.

Переходим к настройке NGINX, чтобы использовать наш недавно полученный сертификат! В качестве пути к сертификату я использую фактический путь, а не регулярное выражение.

У нас есть SSL, с таким же успехом можно перенаправить на него весь наш трафик. Именно это и делает первая серверная секция. У меня он настроен на перенаправление всего трафика, включая субдомены, на основной домен.

2016-05-16_122009

Если вы используете Chrome и не отключите перечисленные выше шифры ssl, вы получите err_spdy_inadequate_transport_security. Вам также необходимо отредактировать файл конфигурации nginx, чтобы он выглядел примерно так, чтобы обойти брешь в безопасности в gzip.

2016-05-16_122647

ssl3

Если вы обнаружите, что получаете что-то вроде отказа в доступе - вам нужно дважды проверить правильность server_name (и root). Я только что закончил биться головой об стену, пока не потерял сознание. К счастью, в моих кошмарах о сервере пришел ответ - вы забыли установить корневой каталог! Окровавленный и забитый, я вставил в корень и вот он, мой любимый индекс.

Если вы хотите настроить отдельные поддомены, вы можете использовать

2016-05-16_122342

Вам будет предложено создать пароль для имени пользователя (дважды).

sudo service nginx перезапуск

Теперь вы сможете получить доступ к своему сайту из любого места с помощью имени пользователя и пароля или локально без него. Если вы хотите, чтобы пароль всегда запрашивался, удалите параметр allow 10.0.0.0/24; # Переключитесь на линию вашей локальной сети.

Обратите внимание на интервал для auth_basic, если он неправильный, вы получите сообщение об ошибке.

Если вы ввели неправильный пароль, вы получите 403

ssl4

И последнее, что нам нужно сделать, это настроить автоматическое продление сертификатов SSL.

Для этого простое задание cron является правильным инструментом для работы, мы собираемся поместить его как пользователя root, чтобы предотвратить ошибки разрешений.

(sudo crontab -l 2> / dev / null; echo ‘0 0 1 * * letsencrypt Renew’) | sudo crontab -

Причина использования / dev / null - убедиться, что вы можете писать в crontab, даже если он ранее не существовал.

3 минуты на чтение