Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Certificado do HTTPS não reconhecido

Fiz as alterações no código para implementar o HTTPS. Rodei o comando:

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt

Fiz as seguintes modificações no arquivo server.js:

const https = require('https')
https.createServer(
  {
    key: fs.readFileSync('server.key'),
    cert: fs.readFileSync('server.crt'),
  },
  server
).listen(8000, () => {
  console.log("API disponível em https://localhost:8000")
})

E reiniciei a api, porém ao entrar na url recebi a mensagem que o site não era seguro pois não oferecia certificado válido: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E quando tentei fazer a requisição no Postman recebi o seguinte erro: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como poderia resolver isso?

2 respostas
solução!

Olá Henrique,

Quanto ao comportamento no browser, é normal, pois esse certificado foi gerado "em casa".

Normalmente, os certificados são gerados por uma autoridade certificadora, como a Let's Encrypt. Nesse caso, para ambiente de desenvolvimento, não tem problema usar o certificado "caseiro" (self-signed), e é só clicar para o browser prosseguir com esse certificado mesmo.

Note que a comunicação ainda será segura, tudo estará criptografado mesmo com o certificado caseiro, a única diferença é que em teoria, há uma vulnerabilidade chamada "man in the middle" (MITM), mas isso só passa a ser importante no ambiente de produção (se o site estivesse no ar).

Quanto ao Postman, se não me falha a memória, você pode habilitar o uso de certificados self-signed no menu Settings > General > SSL certificate verification (desligar essa opção).

Espero que funcione e bons estudos!

Entendi, obrigado pelas explicações!