technology

Como criar um servidor HTTPS no Node Js – TREND OCEANS

.

Como faço para criar um servidor HTTPS paraNodeJS? Então vamos aprender como criar um servidor HTTPS porque esta é a pergunta mais frequente dos desenvolvedores Node.js.

HTTPS é um protocolo seguro para aplicativos da web em que toda a comunicação entre seu navegador e o servidor é criptografada e descriptografada apenas usando uma chave privada.

Isso torna a comunicação mais segura e privada.

Se você remover o S de HTTPSNós temos HTTPa protocolo padrão para acessar aplicações web. Não é seguro; qualquer pessoa pode interceptar seus pacotes de dados conectados à mesma rede, o que ninguém quer que aconteça.

É por isso que o HTTPS foi criado, para fornecer uma camada extra de segurança por meio da criptografia.

Isso torna a comunicação mais segura e privada.

Os certificados SSL de uma autoridade de certificação de renome devem ser instalados no servidor Node.js.

Pelo preço mais baixo, o proprietário do site deve comprar os certificados RapidSSL, Comodo SSL ou AlphaSSL, que fornecem criptografia forte a um preço baixo, mas aqui usaremos o OpenSSL para criar certificados SSL.

Hoje, você aprenderá a criar um certificado SSL para iniciar um servidor HTTPS para Express in Node Js.

Etapa 1: modelo Js de nó padrão

Sem falar muito, deixe-me mostrar o modelo NodeJS padrão que usei para criar um servidor regular rodando em HTTP.

const express = require("express"),
      app = express()

app.get("/", (req, res) => {
    res.send("Hello, TREND OCEANS!")
})

app.listen(3000, console.log(`Server started on port 3000`))

A execução do script acima usando Node.js iniciará o servidor web com o padrão protocolo HTTP e exibir um “Olá, TREND OCEANS!” mensagem.

Servidor HTTP padrão

Por exemplo, você pode pegar o código acima como exemplo e criar um novo arquivo em um novo diretório e Salve issocom o nome app.js.

Além disso, não se esqueça de executar o npm init comando para iniciar módulos de nó no diretório atual.

Etapa 2: criar um certificado SSL

Para usar HTTPS, primeiro temos que criar um certificado SSL. Os certificados SSL podem ser gerados no Windows, Linux e macOS usando OpenSSL.

O OpenSSL está disponível por padrão para todos os sistemas Linux sem instalar nenhum outro pacote. Execute o comando abaixo para criar cert.pem e chave.pem em seu sistema Linux.

$ openssl req -x509 --newkey rsa:4096 --out cert.pem --keyout key.pem --days 365

Para usuários do Windows, você pode instalar Git BashGenericName. O OpenSSL está disponível no console do Git Bash.

Quando você executar o comando acima, ele perguntará algumas coisas. Primeiro, o frase secreta para o seu arquivo PEM de chave para torná-lo mais seguro.

Eu recomendo definir um senha segura.

Gerando Certificado SSL
Gerando Certificado SSL

Em seguida, ele fará perguntas gerais como nome do país em código de 2 letras, e-mail, nome da organização, etc. Cabe a você decidir quais informações deseja fornecer.

Aqui eu simplesmente ignorei a entrada pressionando enter.

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

Assim que terminar, você verá dois arquivos criado no diretório atual com o nome cert.pem e key.pem.

Certificado SSL
Certificado SSL

Agora temos que colocar esses arquivos no novo diretório.

Se você estiver usando um modelo padrão de passo 1. Em seguida, crie uma nova pasta dentro do seu projeto atual com o nome certificado e coloque os dois arquivos lá para torná-lo mais estruturado.

Movendo certificado dentro do diretório cert
Movendo certificados dentro do diretório cert

Etapa 3: Modificando o aplicativo Node

Agora temos que fazer algumas mudanças dentro app.js de passo 1. Abaixo estão as poucas alterações que fizemos. Você pode identificar as diferenças revisitando passo 1 entender nossas mudanças.

const express = require("express"),
      app = express(),
      fs = require("fs"),
      path = require("path"),
      https = require("https")


certfile = fs.readFileSync(path.join(__dirname, "cert", "cert.pem"))
keyfile = fs.readFileSync(path.join(__dirname, "cert", "key.pem"))

const secureserver = https.createServer({ cert: certfile, key: keyfile, passphrase: "Strong The One" }, app)

app.get("/", (req, res) => {
    res.send("Hello, TREND OCEANS!")
})

secureserver.listen(3000, console.log(`Server started on port 3000`))

Vamos falar sobre as mudanças que fizemos de passo 1.

Primeiro, incluímos mais alguns módulos em nosso projeto atual, como fs, caminho, e HTTPS.

fs: Incluímos esta biblioteca para ler o conteúdo dos certificados.

caminho: nos ajuda a localizar certificados em nosso projeto. [Which we moved in cert directory]

HTTPS: Este módulo principal nos permite criar um servidor HTTPS usando o certificado gerado de passo 2.

A seguir, acabamos de criar algumas variáveis ​​especificando a localização do certificado e para lê-las usando fs e caminho módulos.

certfile = fs.readFileSync(path.join(__dirname, "cert", "cert.pem"))
keyfile = fs.readFileSync(path.join(__dirname, "cert", "key.pem"))

Agora usamos as variáveis ​​acima para ler os certificados SSL para criar um servidor HTTPS usando o módulo HTTPS. Não se esqueça de substituir o frase secreta. No meu caso é oceanos de tendência; substitua-o por aquele que você especificou ao gerar um certificado SSL.

const secureserver = https.createServer({ cert: certfile, key: keyfile, passphrase: "Strong The One" }, app)

Finalmente, não se esqueça de substituir a última variável do aplicativo para servidor seguro para iniciar o ouvinte no protocolo HTTPS.

secureserver.listen(3000, console.log(`Server started on port 3000`))

Depois de fazer as alterações necessárias, salve seu arquivo e abra o prompt de comando ou terminal no diretório do projeto para iniciar o servidor expresso usando o comando abaixo.

$ node app.js

Agora abra seu navegador e acesse https://localhost:3000e pela primeira vez, mostrará uma mensagem de aviso de que o conexão não é privada.

Estamos recebendo esta mensagem porque usamos um certificado SSL autoassinadoe nosso navegador não conhece o autoridade.

Evitando a mensagem de aviso
Evitando a mensagem de aviso

Por enquanto, clique em avançar e então Prossiga para localhost (inseguro) para acessar seu site.

Servidor Secure Node Js
Servidor Secure Node Js

Tada, você criou com sucesso um servidor HTTPS para Express em Node.js.

Pensamento final

Eu entendo que no começo pode parecer um pouco complicado. Mas se você estiver enfrentando alguma dificuldade ou não conseguir criar um servidor seguro, informe-nos na seção de comentários.

.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo