Mudanças entre as edições de "SSL em aplicativo Node.js"
(13 edições intermediárias de um usuário não apresentadas) | |||
Linha 1: | Linha 1: | ||
+ | [[File:Wiki-node-next-puppeteer.jpg|center| 700px||border|link=https://integrator.com.br/plano-hospedagem-php-nodejs.html|Planos Nodejs|]] | ||
+ | |||
== Antes de Começar == | == Antes de Começar == | ||
Seu plano deve ter acesso ao painel [[O painel Node.js|Integrator Node.js]]. Caso não tenha, poderá requisitar a mudança de plano ao suporte ou na sua área de cliente. | Seu plano deve ter acesso ao painel [[O painel Node.js|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 == | == Sobre exemplos de programação == | ||
− | A Integrator Host exemplifica sem o compromisso de analisar ou codificar aplicativos que o desenvolvedor queira hospedar. | + | A Integrator Host exemplifica sem o compromisso de analisar ou codificar aplicativos que o desenvolvedor queira hospedar. Este tutorial assume, na parte programada em Node.js, que o desenvolvedor compreende o que está sendo realizado e tem conhecimento adequado para adaptar seu aplicativo.<br> |
+ | Qualquer pedido de análise de código ou referência a este artigo como sugestão para falha do aplicativo do usuário, será negado como suporte de hospedagem. | ||
== O SSL em domínio que aponta para a Integrator == | == O SSL em domínio que aponta para a Integrator == | ||
Linha 61: | Linha 64: | ||
const app = require('express')(); | const app = require('express')(); | ||
const options = { | const options = { | ||
− | key : fs.readFileSync('/home/ | + | key : fs.readFileSync('/home/USUARIO_DO_CPANEL/ssl/personal/integrator.host.key'), |
− | cert : fs.readFileSync('/home/ | + | cert : fs.readFileSync('/home/USUARIO_DO_CPANEL/ssl/personal/integrator.host.crt') |
}; | }; | ||
Linha 72: | Linha 75: | ||
https.createServer(options, app).listen(port); | https.createServer(options, app).listen(port); | ||
</pre> | </pre> | ||
+ | |||
+ | '''NOTA:''' O '''USUARIO_DO_CPANEL''' é o seu usuário de acesso ao cPanel, FTP, SSH e etc. | ||
+ | |||
+ | == O exemplo para download == | ||
+ | O desenvolvedor pode baixar o exemplo no endereço https://wiki.integrator.com.br/exemplos/projetosslexemplo.zip. Veja o arquivo LEIAME para alterar e publicar. | ||
== Publicação da aplicação == | == Publicação da aplicação == | ||
Linha 77: | Linha 85: | ||
== O acesso via domínio sem porta == | == O acesso via domínio sem porta == | ||
− | No painel da Integrator Host, [[ | + | No painel da Integrator Host, [[O painel Node.js|o 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. <br> |
O correto é o desenvolvedor usar outra porta para o HTTPS. | O correto é o desenvolvedor usar outra porta para o HTTPS. | ||
Linha 83: | Linha 91: | ||
Veja as portas funcionais e permitidas ao seu usuário no formulário de preenchimento do aplicativo, na aba [[O processo de deploy para um aplicativo Node.js#Registrando_o_aplicativo|Registrar]] e use uma delas para colocar o HTTPS exclusivo para acesso. | Veja as portas funcionais e permitidas ao seu usuário no formulário de preenchimento do aplicativo, na aba [[O processo de deploy para um aplicativo Node.js#Registrando_o_aplicativo|Registrar]] e use uma delas para colocar o HTTPS exclusivo para acesso. | ||
+ | === Quando devo usar HTTPS diretamente no Node.js? === | ||
+ | Quando o aplicativo for utilizar Websocket, por exemplo, ou tenha algum acesso que necessite ser diretamente no Node.js e possua informações que trafegam no qual devem ser criptografadas. | ||
== O comando certkey == | == O comando certkey == |
Edição atual tal como às 03h34min de 17 de julho de 2024
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. Este tutorial assume, na parte programada em Node.js, que o desenvolvedor compreende o que está sendo realizado e tem conhecimento adequado para adaptar seu aplicativo.
Qualquer pedido de análise de código ou referência a este artigo como sugestão para falha do aplicativo do usuário, será negado como suporte de hospedagem.
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_DO_CPANEL/ssl/personal/integrator.host.key'), cert : fs.readFileSync('/home/USUARIO_DO_CPANEL/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);
NOTA: O USUARIO_DO_CPANEL é o seu usuário de acesso ao cPanel, FTP, SSH e etc.
O exemplo para download
O desenvolvedor pode baixar o exemplo no endereço https://wiki.integrator.com.br/exemplos/projetosslexemplo.zip. Veja o arquivo LEIAME para alterar e publicar.
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, o 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.
Quando devo usar HTTPS diretamente no Node.js?
Quando o aplicativo for utilizar Websocket, por exemplo, ou tenha algum acesso que necessite ser diretamente no Node.js e possua informações que trafegam no qual devem ser criptografadas.
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.