Данную статью можете рассматривать как полноценное руководство по прикручиванию
Если вкратце, то Let’s Encrypt — это новый центр сертификации (CA), предоставляющий бесплатные и автоматизированные SSL/
Установим клиент с помощью команды:
sudo git clone https://github.com/certbot/certbot /opt/letsencrypt
Если git не установлен, то сначала нужно установить его, а потом уже устанавливает клиент для Let’s Encrypt (далее certbot). Файлы будут загружены в каталог /opt/letsencrypt.
Данный каталог позволяет серверу Let’s Encrypt убедиться, что ваш сайт пытается получить бесплатный
cd /var/www/shop
mkdir.
mkdir.
find. -type d -exec chown
Теперь нужно создать файл конфигурации для вашего домена. Если ваш домен называется example.com, то файл будет называться /etc/letsencrypt/configs/example.com.conf. Содержимое файла:
# ваш домен (хотя и можно создать один сертификат для нескольких доменов
# мы рекомендуем создавать отдельные сертификаты и, следовательно, отдельные
# файлы конфигурации для разных доменов)
domains = example.com
# размер ключа
# сервер сертификации
server = https://
# адрес, на который будут приходить напоминание об обновлении
email =
# отключаем ncurses UI
text = True
# задаем путь к каталогу.
authenticator = webroot
Настало время запросить сам сертификат. Во второй команде вам нужно заменить точное имя файла конфигурации:
cd /opt/letsencrypt
$ ./
Рис. 1. Сертификат сгенерирован
Вывод последней команды изображен на рисунке выше. Как видите, файлы сертификата помещены в каталог /etc/letsencrypt/live/<имя>/. Поскольку скриншот сделан в процессе настройки реального узла, то его адрес затерт (NDA есть NDA). В результате было сгенерировано два файла — файл сертификата fullchain.pem и файл ключа privkey.pem.
Итак, сертификат уже есть, осталось дело за малым — настроить
server {
listen 443 ssl default_server;
listen 80;
server_name <имя>;
ssl_certificate /etc/letsencrypt/live/<имя>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<имя>/privkey.pem;
root /var/www/<каталог>;
index.php index.html;
location /.
root /var/www/<каталог>;
}
….
# Другие параметры
}
Обратите внимание на следующие моменты:
Заставим nginx перечитать конфиг:
sudo nginx -t && sudo nginx -s reload
Мало настроить SSL на
Рис. 2. Настройка движка
Остались последние штрихи, например, настройка обязательного редиректа с http на https (если вы решите оставить listen 80 в настройках nginx). Для этого в файл .htaccess добавьте строки:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443 $
RewriteRule.* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Наш сертификат будет действителен в течение 90 дней, после чего должен быть обновлен. Для обновления можно использовать следующий сценарий
#!/bin/sh
cd /opt/letsencrypt/
./
if [ $? -ne 0 ]
then
ERRORLOG=`tail /var/log/letsencrypt/letsencrypt.log`
echo -e "The Let’s Encrypt cert has not been renewed!\n\n "
$ERRORLOG
else
nginx -s reload
fi
exit 0
В расписание cron нужно добавить строку:
0 0 1 JAN,MAR,MAY,JUL,SEP,NOV * /path/to/
И не забудьте создать каталог /var/log/letsencrypt/ (если он еще не создан) и изменить соответствующим образом права доступа (пользователь, от имени которого выполняется обновление сертификата должен иметь право писать в этот каталог).
Вот теперь действительно все. Мы рассмотрели все аспекты, связанные с «внедрением»