Исходные данные:

У нас есть уже настроенный сервер с поднятым nginx в качестве reverse proxy c внешним ip.
На нем также находятся несколько web-серверов. Возникла необходимость установить виртуальную машину с еще одним web-сервером new.admin812.ru во внутренней сети c ip-адресом  192.168.15.13 и обеспечить доступ снаружи по https.
Поднимаем виртуальную машину, устанавливаем nginx или apache, php и что там еще нам нужно для работы. убеждаемся, что внутри сети все работает. Подробнее смотри здесь. Заходим в панель хостинга провайдера и присваиваем сайту new.admin812.ru такой же ip-адрес  как и у nginx-proxy.

Следующая задача — настроить доступ извне. Переходим на nginx-proxy и пропишем наш новый сайт.
Несмотря на то, что сайт будет находится на другом сервере, создадим каталог с именем нашего нового сайта.
Это необходимо для генерации сертификатов в Let’s encrypt.

sudo mkdir /var/www/html/new.admin812.ru
sudo touch /etc/nginx/sites-available/new.admin812.ru
sudo ln -s /etc/nginx/sites-available/new.admin812.ru /etc/nginx/sites-enabled/new.admin812.ru

Теперь необходимо получить сертификат. Делать это мы будем с помощью Cerbot

Скачиваем и делаем файл исполняемым

git clone https://github.com/certbot/certbot
cd certbot
chmod a+x ./certbot-auto

Теперь необходимо получить сам сертификат.

./certbot-auto certonly --webroot --agree-tos --email info@new.admin812.ru -w /home/www/html/new.admin812.ru/ -d new.admin812.ru -d www.new.admin812.ru

Запускаем и ждем. По окончании, если все хорошо, вы видите сообщение:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
 /etc/letsencrypt/live/info@new.admin812.ru/fullchain.pem. Your
 cert will expire on 2018-12-25. To obtain a new version of the
 certificate in the future, simply run Certbot again.
 - If you lose your account credentials, you can recover through
 e-mails sent to info@new.admin812.ru.
 - Your account credentials have been saved in your Certbot
 configuration directory at /etc/letsencrypt. You should make a
 secure backup of this folder now. This configuration directory will
 also contain certificates and private keys obtained by Certbot so
 making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt:     https://letsencrypt.org/donate
Donating to EFF:                      https://eff.org/donate-le

Сертификаты установлены, теперь в настройках nginx пропишем пути к ним.

sudo nano /etc/nginx/sites-available/new.admin812.ru
server {
 listen 80;
 listen [::]:80;
 server_name new.admin812.ru;
 return 301 https://$server_name$request_uri;

}
 server {
 listen 443 ssl;
 listen [::]:443 ssl;
 server_name new.admin812.ru;

ssl on;
 ssl_certificate /etc/letsencrypt/live/new.admin812.ru/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/new.admin812.ru/privkey.pem;

include /etc/nginx/snippets/ssl.conf;

location /.well-known {
 root /var/www/http/new.admin812.ru/;
 }

location / {
 proxy_pass http://192.168.15.13:80/;
 }
 }

Проверяем:

nginx -t

и если нет ошибок, перегружаем

service nginx restart
Let’encrypt и сайт во внутренней сети.
Метки:             

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *