Tenho um servidor Node.js com Express que serve uma rede https. O servidor está executando o Windows 10. Configurei um servidor DNS sem IP com certificados SSL. A rede está na porta 3000 e quero iniciar um proxy reverso com o Nginx para acessá-la sem precisar especificar a porta, apenas o nome do domínio. O problema é que o Nginx está funcionando para máquinas da rede local, mas não para máquinas externas. Esta é a configuração para o Nginx:
worker_processes 1;
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name servidordelacruz.dynns.com;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name xxxxxx.dynns.com;
ssl_certificate route_to\noip_fullchain_cert.pem;
ssl_certificate_key route_to\cert.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass https://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
Tenho as portas 80 e 443 abertas no roteador para o servidor e, apenas para teste, o firewall do Windows está completamente desabilitado. Também confirmei que o ddns está funcionando, pois também tenho um servidor de Minecraft acessível. No arquivo access.log, também posso ver que o telefone alcança o servidor:
X.X.X.X - - [05/Nov/2024:20:52:40 +0100] "GET / HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Android 15; Mobile; rv:132.0) Gecko/132.0 Firefox/132.0"
Por fim, no arquivo de log errors. vejo esse erro constantemente:
2024/11/05 21:05:46 [info] 5276#10252: *943 SSL_do_handshake() failed (SSL: error:0A000412:SSL routines::sslv3 alert bad certificate:SSL alert number 42) while SSL handshaking, client: X.X.X.X, server: 0.0.0.0:443
O IP do cliente é meu IP público. Li que talvez não seja importante.