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?