Executar HTTPS localmente é obrigatório para certos tipos de desenvolvimento.
Durante o desenvolvimento, você pode querer configurar seu servidor web para estabelecer conexões seguras com navegadores. O Node.js torna esse processo simples, mesmo em um ambiente de não produção, com seu https módulo.
Na produção, você pode configurar seu aplicativo atrás de um proxy reverso como o NGINX, que geralmente fornece certificados para você. Mas você ainda pode precisar testar seu aplicativo usando https em desenvolvimento.
Como você pode usar um certificado SSL em um aplicativo Node.js?
Como usar um certificado SSL para desenvolver um servidor Node.js seguro
você pode facilmente criar um certificado SSL autoassinado no Linuxe siga as etapas abaixo para configurar seu aplicativo Node para usar https.
- Crie um arquivo de ponto de entrada do servidor, por exemplo, index.js.
- Importar o https e fs módulos no arquivo assim:
const https = exigir('https');
const fs = exigir('fs') - Defina o objeto de opções para o https servidor que você está prestes a criar. Lembre-se de substituir minha-chave-do-servidor.pem e meu-servidor-cert.pem com os caminhos corretos de sua chave privada e arquivos de certificado.
const opções = {
Para usar um certificado SSL real, que você pode obter gratuitamente em letsencrypt.org, utilize as seguintes opções:
chave: fs.readFileSync("my-server-key.pem"),
cert: fs.readFileSync("meu-servidor-cert.pem")
}const opções = {
chave: fs.readFileSync("/path/to/private.key"),
certificado: fs.readFileSync("/path/to/ssl_certificate.crt"),
ca: [
fs.readFileSync("/path/to/ca_root_file.crt"),
fs.readFileSync("/path/to/ca_bundle_certificate.crt")
]
} - Agora inicialize seu servidor usando as opções e configure-o para escutar na porta 443.
https.createServer (opções, (req, res) => {
res.writeHead(200);
res.end("olá mundo");
})
.ouvir(443);
Agora você pode iniciar seu servidor no terminal usando nó index.js. Ao testar a conexão abrindo https://localhost ou https://localhost: 443/ no seu navegador, você deve ver 'Olá Mundo' exibido.
Seu navegador também pode avisá-lo sobre uma conexão insegura ao usar o certificado autoassinado. Isso é normal, pois os certificados autoassinados geralmente são considerados inseguros pelos navegadores da web.
Você pode obter o erro “Erro: ouvir EACCES: permissão negada 0.0.0.0:443” quando você tenta iniciar seu servidor, isso ocorre porque sua máquina nega o acesso do aplicativo à porta 443, que é o comportamento padrão na maioria dos dispositivos. Para corrigir isso, execute o nó index.js comando como usuário root no Linux (sudo node index.js) ou abra seu terminal como administrador no Windows.
Usando certificados SSL em aplicativos Node.js
Na maioria das vezes, você só deseja adicionar certificados SSL durante a fase de desenvolvimento. Os requisitos de produção geralmente exigem a instalação de ferramentas de segurança, como firewalls e proxies reversos.
Dessa forma, não é mais necessário usar um certificado SSL para seu aplicativo. Você só pode querer adicionar um certificado SSL em produção se seu aplicativo se comunicar com serviços externos.