NestJS com HTTPS: configurando certificados SSL
🔐 Introdução
O uso de HTTPS em aplicações NestJS garante comunicação segura, pois utiliza certificados SSL para criptografar o tráfego.
A configuração é simples e pode ser aplicada tanto localmente quanto em produção, bastando carregar as chaves e iniciar o servidor com suporte a TLS.
Você pode usar certificados gerados (autoassinados) pelo mkcert para ambientes locais (exclusivamente testes).
Para produção, é indicado utilizar certificados fornecidos por autoridades confiáveis.
A seguir, seguem três exemplos simples:
✔️ Exemplo 1 — mkcert + Nginx
1. Instalar o mkcert
sudo apt install libnss3-tools
brew install mkcert
mkcert -install
2. Gerar certificados
mkcert localhost
Isso cria localhost.pem e localhost-key.pem.
3. Configurar Nginx
server {
listen 443 ssl;
ssl_certificate /etc/nginx/certs/localhost.pem;
ssl_certificate_key /etc/nginx/certs/localhost-key.pem;
location / {
proxy_pass http://localhost:3000;
}
}
4. NestJS interno (HTTP)
await app.listen(3000);
✔️ Exemplo 2 — Npm
1. Instalar mkcert (Linux/macOS/Windows)
npm install -g mkcert
2. Criar certificados
Criar autoridade certificadora (CA):
mkcert create-ca
Criar certificado:
mkcert create-cert
3. Usar no NestJS
import fs from 'fs';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule, {
httpsOptions: {
key: fs.readFileSync('./secrets/cert.key'),
cert: fs.readFileSync('./secrets/cert.crt'),
},
});
await app.listen(3000);
}
bootstrap();
✔️ Exemplo 3 — Sem mkcert (Gerando certificados com OpenSSL)
1. Instalar OpenSSL
sudo apt install openssl
brew install openssl
2. Gerar chave e certificado
openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 -keyout server.key -out server.crt
3. Usar no NestJS
import fs from 'fs';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule, {
httpsOptions: {
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt'),
},
});
await app.listen(3000);
}
bootstrap();
4. Ajustes para produção
- Utilize certificados válidos de autoridades como Let's Encrypt, ZeroSSL ou Cloudflare.
- Evite deixar certificados no repositório; use variáveis de ambiente.
- Certificados devem ser renovados periodicamente.
- Em HTTPS real, o navegador não exibirá avisos de segurança.
- Pode ser necessário configurar firewall ou reverse proxy.
5. Testando sua API HTTPS
- Acesse via:
https://localhost:3000 - Certificados autoassinados exibirão aviso — é normal.
- Teste rotas com Postman ou Insomnia.
- Verifique se o cadeado aparece em produção.
- Confirme os cabeçalhos TLS na resposta.
⚒️ Ferramentas de produção
- Imagens geradas por: I.A. ChatGPT
- Conteúdo gerado com apoio de I. A : ChatGPT
- Autor/ Revisão Humana: Roberto Butzke Junior
#NestJS #HTTPS #SSL




Respondendo a pergunta sobre balancear a inovação e a eficiência com a ética e a privacidade :
Basicamente necessitamos conhecer a linguagem de programação / Framework utilizado pois caso a IA cometa alguma alucinação vamos conseguir corrigir a mesma , a IA deve ser uma ferramente de apoio não um gerador de código descontrolado a qual o dev só intervem quando ocorre um problema grave , este é um grande desafio tanto para profissionais mais antigos quanto mais jovens utiliza a IA como apoio e não como carro chefe.
A questão da ética e privacidade é um fator crucial em todos os seguimentos da área de TI , principalmente ao utilizar IAs como ChatGpt , Deepseek , Gemini, Copilot, Claud , Grok, as quais normalmente tem acesso a informações sensíveis imputadas nos prompts.
Na minha opinião a solução para utilizar um modelo de IA sem expor dados sensíveis é o modelo on premise na qual você monta uma máquina física dedicada somente ao processamento de modelos de IA , ferramentas como o Ollama permitem baixar modelos como o Deepseek R1 Queen 1.3b que funciona em máquinas sem placa de vídeo dedicada consumindo em torno de 8g de memória
Excelente, Roberto! Que artigo cirúrgico, inspirador e essencial! Você tocou no ponto crucial do Desenvolvimento Backend: o HTTPS não é um opcional; é o requisito fundamental que garante a segurança e a integridade da comunicação em APIs REST.
É fascinante ver como você aborda o tema, mostrando que a configuração do NestJS para certificados SSL/TLS é simples, bastando carregar as chaves (.pem ou .crt) e iniciar o servidor com httpsOptions.
Qual você diria que é o maior desafio para um desenvolvedor ao implementar os princípios de IA responsável em um projeto, em termos de balancear a inovação e a eficiência com a ética e a privacidade, em vez de apenas focar em funcionalidades?