Let's Encrypt nginx редирект на другой домен

12
baas
На сайте с 17.09.2012
Offline
161
791

Добрый день.

Подскажите пожалуйста как лучше сделать продление сертификата от Let's Encrypt.

Есть два домена ( дом1 и дом2 ), дом1 301 редирект на дом2.

server {

listen 1.1.1.8:80;
server_name www.dom1;
rewrite ^(.*) https://dom2$request_uri? permanent;
}

server {
listen 1.1.1.8:80;
server_name dom1;
rewrite ^(.*) https://dom2$uri permanent;
}

server {
listen 1.1.1.8:443 http2 ssl;
server_name www.dom1;
rewrite ^(.*) https://dom2$uri permanent;
ssl_certificate /usr/local/etc/letsencrypt/live/dom1/fullchain.pem;
ssl_certificate_key /usr/local/etc/letsencrypt/live/dom1/privkey.pem;
ssl_trusted_certificate /usr/local/etc/letsencrypt/live/dom1/chain.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
}

server {
listen 1.1.1.8:443 http2 ssl;
server_name dom1;
rewrite ^(.*) https://dom2$request_uri? permanent;
ssl_certificate /usr/local/etc/letsencrypt/live/dom1/fullchain.pem;
ssl_certificate_key /usr/local/etc/letsencrypt/live/dom1/privkey.pem;
ssl_trusted_certificate /usr/local/etc/letsencrypt/live/dom1/chain.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
client_max_body_size 32M;
root /usr/local/www/dom1/;
open_file_cache max=250000 inactive=120s;
open_file_cache_valid 300s;
open_file_cache_min_uses 1;
open_file_cache_errors on;

location =/.well-known/acme-challenge/index.html {
root /usr/local/www/dom1;
}
}
Настройка BSD систем. (https://www.fryaha.ru) Знание сила, незнание Рабочая сила!
baas
На сайте с 17.09.2012
Offline
161
#1

Пробую сделать исключение в редиректе.

rewrite ^(?!/.well-known/(.*))(.*) https://dom2$uri permanent

Но что то не получается ни как.

Начинаю отчаиваться, что не фига не получится сделать продление сертификата.

VO
На сайте с 27.07.2008
Offline
149
#2

Подтвердите через DNS запись)

baas
На сайте с 17.09.2012
Offline
161
#3
V(o)ViK:
Подтвердите через DNS запись)

хмм, где об этом прочитать?

Mik Foxi
На сайте с 02.03.2011
Offline
1076
#4

baas, сделайте исключение для папки подтверждения, чтоб она не редиректила.

Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ + партнерка, до 40$ с продажи.
Евгений Крупченко
На сайте с 27.09.2003
Offline
178
#5

сперва делается location для letsencrypt, а потом редирект, внутри location /

пример у меня как сделано. кусок letsencrypt отдельным файлом и вставляется в каждый конфиг, где это нужно:

location ~ /.well-known/acme-challenge/

{
root /letsencrypt;
default_type "text/plain";
try_files $uri =404;
}

сам конфиг с редиректом (с http на https):

server

{
...логи и все остальное тут...
include letsencrypt;
location /
{
return 301 https://vovk.com$request_uri;
}
}

так работает. попробуйте.

baas
На сайте с 17.09.2012
Offline
161
#6

По совету знакомого товарища сделал так.

server {
listen 1.1.1.8:80;
server_name www.dom1;
location /.well-known/acme-challenge/ {
root /usr/local/www/dom1/;
}
location / {
return 301 https://dom2$request_uri;
}
}
server {
listen 1.1.1.8:80;
server_name dom1;
location /.well-known/acme-challenge/ {
root /usr/local/www/dom1/;
}
location / {
return 301 https://dom2$request_uri;
}
...
...
...
}

Но как-то грамозко получается, пробую такой вариант.

server {
listen 1.1.1.8:80;
server_name dom1;
root /usr/local/www/dom1;
rewrite ^(?!/.well-known/.*)(.*) https://dom2$request_uri? permanent;
}
...
...
...
Andreyka
На сайте с 19.02.2005
Offline
822
#7
baas:
хмм, где об этом прочитать?

https://letsencrypt.org/ru/docs/challenge-types/

Проверка DNS-01

Не стоит плодить сущности без необходимости
baas
На сайте с 17.09.2012
Offline
161
#8
Andreyka:
https://letsencrypt.org/ru/docs/challenge-types/
Проверка DNS-01

Хмм, через днс даже лучше будет.

Не нужно тогда исключения для редиректа городить.

VO
На сайте с 27.07.2008
Offline
149
#9
baas:
Хмм, через днс даже лучше будет.
Не нужно тогда исключения для редиректа городить.

Да будет так.

baas
На сайте с 17.09.2012
Offline
161
#10

Рано обрадовался.

Почитал я про подтверждения через днс, мутно, геморойно.

1 как я понял, при каждом продлении сертификата будет изменять txt запись, а тут либо в ручную или через апи все это передавать в днс.

2 Намного сложнее получается чем обычный метод через /.well-known/.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий