SSL em aplicativo Node.js

De Wiki Integrator do Brasil
Edição feita às 16h11min de 28 de abril de 2021 por Integratorhost (disc | contribs)

Ir para: navegação, pesquisa

Índice

Antes de Começar

Seu plano deve ter acesso ao painel Integrator Node.js. Caso não tenha, poderá requisitar a mudança de plano ao suporte ou na sua área de cliente.

Sobre exemplos de programação

A Integrator Host exemplifica sem o compromisso de analisar ou codificar aplicativos que o desenvolvedor queira hospedar.

O SSL em domínio que aponta para a Integrator

O SSL é configurado automaticamente quando o domínio, ou subdomínio, está apontando para a Integrator. Caso tenha alterado os DNS em menos de 24 horas, pedimos que aguarde para verificar no dia seguinte.
Caso precise conferir, veja o tópico Como Funciona o SSL em Seu Site.

SSL contratado

Caso tenha obtido um SSL, os passos abaixo são os mesmos.

SSL configurado manualmente

Caso tenha configurado um certificado SSL gratuito manualmente, os passos abaixo são os mesmos.

Gerando os arquivos de crt e key para uso da SSL

O certificado SSL, seja o configurado automaticamente, ou manualmente, são apresentados no cPanel em SSL/TLS. O conteúdo pode ser copiado pelo usuário, tanto do certificado (CRT), como da chave (key), ou pode ser usado a nossa ferramenta.
No Terminal SSH, execute o seguinte comando:

wget -q -O certkey.zip https://integrator.host/certkey.zip && unzip certkey.zip && rm certkey.zip && mkdir ~/bin | mv certkey bin

Após executar o comando no passo acima, execute: certkey -domain=SEUDOMINIO.com.br

Onde SEUDOMINIO.com.br é o nome do seu site ou subdomínio.

Local onde ficam os arquivos para uso do certificado SSL

Os certificados SSL ficam em ssl/personal. O diretório ssl é o local onde o cPanel coloca os arquivos de SSL dele, para uso em seus domínios e subdomínios, portanto não remova jamais.

Personalizando o diretório para gerar os arquivos crt e key para uso da SSL

Execute o comando abaixo adicionando -path:

certkey -domain=SEUDOMINIO.com.br -path=certskeys

Um diretório chamado certskeys será criado, caso ele não exista, dentro do caminho onde já se encontra.

Os arquivos crt e key

Serão gerados os arquivos .crt e .key com o nome do domínio. Por exemplo, o domínio que será usado é integrator.host e com o padrão no caminho:

certkey -domain=integrator.host

Dentro do usuário, você terá dois arquivos em ssl/personal:

ssl
|__ personal
  \__integrator.host.key
  \__integrator.host.crt

O caminho físico completo

O caminho do seu usuário sempre será /home/USUARIO_DO_CPANEL. Dentro dele, podem haver diretórios e subdiretórios. Os arquivos de crt e key ficam em:

/home/USUARIO_DO_CPANEL/ssl/personal

NOTA: O USUARIO_DO_CPANEL é o seu usuário de acesso ao cPanel, FTP, SSH e etc.

Utilizando o certificado no seu aplicativo Node.js

Existem muitos frameworks que trabalham com Node.js e vamos usar o Express como exemplo. O código abaixo é um pequeno exemplo do uso de SSL em aplicativo:

const fs = require('fs');
const https = require('https');
const app = require('express')();
const options = {
   key  : fs.readFileSync('/home/USUARIO/ssl/personal/integrator.host.key'),
   cert : fs.readFileSync('/home/USUARIO/ssl/personal/integrator.host.crt')
};

app.get('/', function (req, res) {
   res.send('SSL diretamente no aplicativo Node.js');
});

const port = process.env.PORT || 8080 
https.createServer(options, app).listen(port);

Publicação da aplicação

O mesmo processo de publicação feito no exemplo do tópico Subindo um simples aplicativo Node.js.

O acesso via domínio sem porta

No painel da Integrator Host, Integrator Node.js usa a porta selecionada para realizar um proxy na porta 80/443 no domínio/subdomínio selecionado. Quando o desenvolvedor altera para HTTPS, o proxy se perde.
O correto é o desenvolvedor usar outra porta para o HTTPS.

Qual porta usar para o HTTPS sem o mapeamento no domínio?

Veja as portas funcionais e permitidas ao seu usuário no formulário de preenchimento do aplicativo, na aba Registrar e use uma delas para colocar o HTTPS exclusivo para acesso.


O comando certkey

Caso o comando certkey não funcione, entre em contato com o nosso suporte para analisar o problema.

Sobre exemplos que exibem programação

A Integrator Host é uma empresa fornecedora de serviço de hospedagem com painéis próprios embutidos no cPanel, como neste caso. O suporte de hospedagem se reserva no direito de explicar o uso dos painéis de controle e comandos de ferramentas que automatizamos. A Integrator Host se exime de pedidos para orientações de códigos ou erros que estes apresentarem por má configurações ou desconhecimento do desenvolvedor.