
До начала работы необходимо:
- Доменное имя, которое разрешается в белый IP-адрес вашего роутера с Entware, в примере ниже используется my.domain.ru.
- Разрешить на роутере входящие соединения TCP80 и TCP443.
1. Установите необходимые пакеты:
Код: Выделить всё
bash ca-certificates coreutils-mktemp curl grep nginx openssl-util
2. Скачайте bash-скрипт для автоматического получения сертификата Let's Encrypt:
Код: Выделить всё
cd /opt/etc/nginx
curl -O https://raw.githubusercontent.com/lukas2511/letsencrypt.sh/master/letsencrypt.sh
3. Отредактируйте в файле /opt/etc/nginx/nginx.conf следующие строчки:
- в секции server:
Код: Выделить всё
server_name "my.domain.ru";
- в секции location:
Код: Выделить всё
root /opt/share/nginx/html;
Код: Выделить всё
/opt/etc/init.d/S80nginx start
5. Подготовьте папку, с помощью которой сервис Let's Encrypt проверит то, что веб-сервер принадлежит вам:
Код: Выделить всё
echo WELLKNOWN="/opt/share/nginx/html/.well-known/acme-challenge" > config.sh
mkdir -p /opt/share/nginx/html/.well-known/acme-challenge
6. Запустите скрипт получения SSL-сертификата:
Код: Выделить всё
bash ./letsencrypt.sh --domain my.domain.ru --cron
7. Для получения оценки A+ от SSL Labs необходимо выполнить процедуру, которая занимает от пяти минут (на относительно мощном Asus RT-N66U) до часа и больше (на относительно дохлом ZyXEL Keenetic Omni II). Если есть под рукой Linux ПК, то эту команду можно выполнить на ПК и перенести готовый файл dhparams.pem на роутер:
Код: Выделить всё
openssl dhparam -out dhparams.pem 2048
8. Отредактируйте /opt/etc/nginx/nginx.conf для того, чтобы сервер стал принимать HTTPS-соединения, в секцию server добавьте строки:
Код: Выделить всё
listen 443 ssl;
include ssl.conf;
а в /opt/etc/nginx/ssl.conf поместите следующее содержимое:
9. Перезапустите веб-сервер, чтобы настройки вступили в силу и проверьте доступность https://my.domain.ru из интернета:
Код: Выделить всё
/opt/etc/init.d/S80nginx restart
Всё!