
Olá, recebi este arquivo padrão
server {
listen 80 default_server;
listen 443 default_server;
listen [::]:80 default_server;
listen [::]:443 default_server;
server_name _;
return 444;
}
Isso pega tudo... na mesma pasta (habilitado para sites) eu peguei meu arquivo domain.com
server {
listen 80;
server_name my.domain.com;
location /.well-known/acme-challenge {
default_type "text/plain";
root /storage/webserver/certbot;
}
#Forces all other requests to HTTPS
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2;
server_name my.domain.com;
## SSL STUFF ##
root /path/to/root;
index index.html index.php;
location / {
try_files $uri $uri/ $uri.html;
}
### Site config
}
Se eu deixar o padrão desabilitado (removido) e for para my.domain.com, vejo minha página. agora, se eu adicionar o arquivo padrão, recebo um 444 do Nginx (fechado). Por que..?
EDIT: Depois de alguns testes, descobri que o problema era listen 443 default_server; parte ele captura todas as solicitações https, por quê? Tenho um bloco com meu domínio e ouço 443!
Responder1
De acordo com esta respostahttps://serverfault.com/a/841646/459947
Tive que adicionar um certificado ao catch_all. Depois de fazer isso com um certificado autoassinado recebo 444 no meu IP (correto porque não tem bloco) e aviso SSL e 444 ao aceitar em HTTPS meu IP. Então isso funciona para mim, gostaria que houvesse uma maneira melhor de fazer isso.
server {
listen 80 default_server;
listen 443 ssl default_server;
server_name _;
ssl_certificate <path to cert>
ssl_certificate_key <path to key>
return 444;
}
De acordo comhttps://serverfault.com/a/593668/459947você poderia fazer umsenos blocos para verificar se o domínio está correto. Quer dizer, acho que funciona, mas não quero adicionar isso a cada bloco. Se você acha que essa é uma ideia melhor, me avise.