Ourinhos-SP 24/02/2025 | A L Messias

📌 Gerando Certificados SSL Autoassinados com OpenSSL

Como você quer armazenar os certificados em /etc/nginx/ssl/, siga os passos abaixo:

1️⃣ Criar diretório para os certificados

bash
CopiarEditar
sudo mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl

2️⃣ Gerar uma chave privada (RSA 4096 bits)

bash
CopiarEditar
sudo openssl genrsa -out n8n.lab-key.pem 4096

3️⃣ Criar um certificado autoassinado

bash
CopiarEditar
sudo openssl req -new -x509 -days 365 -key n8n.lab-key.pem -out n8n.lab.pem -subj "/CN=n8n.lab"

⚠️ Isso gerará um certificado válido por 365 dias para n8n.lab.

4️⃣ Repetir para os outros domínios

bash
CopiarEditar
sudo openssl genrsa -out chatwoot.lab-key.pem 4096
sudo openssl req -new -x509 -days 365 -key chatwoot.lab-key.pem -out chatwoot.lab.pem -subj "/CN=chatwoot.lab"

sudo openssl genrsa -out waha.lab-key.pem 4096
sudo openssl req -new -x509 -days 365 -key waha.lab-key.pem -out waha.lab.pem -subj "/CN=waha.lab"


📌 Ajustando o Arquivo nginx.conf

Agora, modifique seu nginx.conf para refletir o novo caminho dos certificados:

nginx
CopiarEditar
events {
    worker_connections 1024;
}

http {
    include mime.types;
    default_type application/octet-stream;

    sendfile on;
    keepalive_timeout 65;

    # Redirecionamento de HTTP para HTTPS
    server {
        listen 80;
        server_name n8n.lab;
        return 301 https://$host$request_uri;
    }

    server {
        listen 443 ssl;
        server_name n8n.lab;

        # Certificados SSL
        ssl_certificate /etc/nginx/ssl/n8n.lab.pem;
        ssl_certificate_key /etc/nginx/ssl/n8n.lab-key.pem;

        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;

        # Configuração do proxy reverso para o n8n
        location / {
            proxy_pass <http://127.0.0.1:5678>; # Melhor usar localhost diretamente
            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;
            proxy_set_header X-N8N-Protocol $scheme;
        }
    }

    # Configuração para WAHa
    server {
        listen 80;
        server_name waha.lab;
        return 301 https://$host$request_uri;
    }

    server {
        listen 443 ssl;
        server_name waha.lab;

        ssl_certificate /etc/nginx/ssl/waha.lab.pem;
        ssl_certificate_key /etc/nginx/ssl/waha.lab-key.pem;

        location / {
            proxy_pass <http://127.0.0.1:3003>;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    # Configuração para Chatwoot
    server {
        listen 80;
        server_name chatwoot.lab;
        return 301 https://$host$request_uri;
    }

    server {
        listen 443 ssl;
        server_name chatwoot.lab;

        ssl_certificate /etc/nginx/ssl/chatwoot.lab.pem;
        ssl_certificate_key /etc/nginx/ssl/chatwoot.lab-key.pem;

        location / {
            proxy_pass <http://127.0.0.1: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;
        }
    }
}


📌 Passos Finais