LocalHost HTTPS: 3 maneiras fáceis de proteger seu servidor de desenvolvimento local – Comunidade de desenvolvimento

O desenvolvimento de aplicativos modernos da Web geralmente significa trabalhar com recursos que exigem um contexto seguro. Seus navegadores, APIs de terceiros e práticas recomendadas de segurança levam você ao uso de HTTPs, mesmo no ambiente de desenvolvimento local. Neste guia abrangente, exploraremos por que você precisa de HTTPs de localhost, percorrer os métodos tradicionais de configurá-lo e demonstrar e fácil de configurá-lo usando o Tunnelmole, uma solução poderosa e com um comando para obter um URL HTTPS seguro e compartilhável para o servidor local rapidamente. Por que você precisa de https no host localhart? Executar o servidor local por HTTPS (Protocolo de transferência de hipertexto seguro) não é mais um “bom de ter”; Muitas vezes, é uma necessidade por vários motivos: requisitos de recursos do navegador: muitas APIs modernas do navegador funcionarão apenas em um “contexto seguro”. Se você tentar usá -los, eles falharão ou serão desativados. Esses recursos incluem: funcionários de serviço: essencial para aplicativos da Web Progressive (PWAs), permitindo a funcionalidade offline e notificações push. WebRTC: para comunicação em tempo real (bate-papo por vídeo/áudio). API de geolocalização: para acessar a localização geográfica de um usuário. Cookies seguros: os cookies com a bandeira segura são enviados apenas sobre HTTPS. API da Web Crypto: para executar operações criptográficas no navegador. Testando integrações de terceiros: muitos serviços, especialmente gateways de pagamento e provedores de autenticação, use webhooks para enviar atualizações em tempo real para o seu aplicativo. Esses serviços quase sempre exigem que o endpoint webhook seja um URL HTTPS seguro. Eles não enviarão dados confidenciais para um endereço inseguro http: //, e o localhost não é acessível da Internet de qualquer maneira. Conseguir paridade de dev/prod/seu aplicativo de produção é executado no HTTPS. Seu ambiente de desenvolvimento deve refletir a produção o mais próximo possível para evitar problemas “funciona na minha máquina”. A execução do HTTPS localmente ajuda a capturar avisos de conteúdo mistos (carregando ativos HTTP em uma página HTTPS) e outros bugs relacionados à segurança no início do ciclo de desenvolvimento. Construindo confiança e profissionalismo: quando você compartilha um trabalho em andamento com um cliente ou colega, enviando a eles um link que lança um grande aviso de segurança não inspira confiança. Um URL HTTPS válido parece profissional e apenas funciona. Método 1: da maneira mais difícil-Criar um certificado autoassinado Uma das maneiras mais comuns de permitir que os HTTPs de localhost é gerar um certificado SSL autoassinado. Este certificado é criado e assinado por você, em vez de uma autoridade de certificado (CA) confiável como Let’s Crypt ou Digicert. Você pode usar uma ferramenta de linha de comando como o OpenSSL para gerar os arquivos de chave e certificado necessários. # Gere uma chave privada e um certificado autoassinado openssl req -x509 -NewKey RSA: 2048 -Nodes -sha256 -Keyout localhost.key -out localhost.crt -Days 365 \ -Subj “/c = US/st = Califórnia/L = São Francisco/Onproject Configuraria então o servidor da web local (por exemplo, em Node.js, Python ou Apache) para usar esses arquivos localhost.key e localhost.crt para servir o tráfego sobre HTTPS. A principal desvantagem: os navegadores não confiam em certificados autoassinados por padrão. Ao visitar, você será recebido com um aviso de segurança proeminente, como “sua conexão não é privada” (net :: err_cert_authority_invalid). Para contornar isso, você deve instruir manualmente seu navegador ou sistema operacional a confiar no seu certificado. Esse processo é complicado, varia entre sistemas operacionais e navegadores e precisa ser repetido para todos os novos projetos e em todos os dispositivos que você testar. É um aborrecimento significativo e recorrente. Método 2: Uma maneira melhor – usar uma CA local com MKCERT Uma abordagem muito melhor para HTTPs somente local apenas para usar uma ferramenta como o MKCERT. Esse utilitário inteligente simplifica o processo criando sua própria autoridade de certificado local (CA) e, crucialmente, adicionando -o às lojas de confiança do seu sistema automaticamente. Eis como funciona: Instale MKCert: Siga as instruções de instalação para o seu sistema operacional. Crie uma CA local: execute mkcert -install. Este comando gera uma CA local e configura seu sistema e navegadores para confiar nele. Você só precisa fazer isso uma vez. Gere um certificado para localhost: Navegue até a pasta do projeto e execute o MKCERT localhost 127.0.0.1 :: 1. Isso cria um certificado válido (localhost-cert.pem) e key (localhost-key.pem) para o seu ambiente local. Configure seu servidor: atualize a configuração do servidor para usar esses novos arquivos. Este método é uma grande melhoria. Como a CA raiz é confiável pelo seu sistema, o certificado de localhost que gera também é confiável e você recebe um cadeado verde no navegador sem avisos. No entanto, esta solução ainda é fundamentalmente local. O URL HTTPS é acessível apenas em sua máquina. Você ainda não pode usá -lo para testar webhooks ou compartilhar facilmente seu trabalho com outras pessoas. Qualquer pessoa com quem você compartilhe seu serviço (ou seja, o restante da sua equipe de desenvolvimento) precisará repetir esse processo. Método 3: A maneira mais fácil – obtenha um URL https de localhost instantâneo com o Tunnelmole e se você pudesse ignorar toda a geração de certificados e configuração com um único comando? É aqui que entra as ferramentas de tunelamento e o Tunnelmole é uma opção fantástica de código aberto. O Tunnelmole funciona criando um túnel seguro a partir de um URL público habilitado para HTTPS para o servidor da web local. Quando uma solicitação atinge o URL público, o Tunnelmole a encaminha através do túnel para o seu aplicativo para localhost. Essa abordagem fornece um URL HTTPS válido e confuso do navegador sem que você precise criar, assinar ou gerenciar um certificado SSL. Como usar o Tunnelmole, vamos ver como é simples. Etapa 1: tenha um servidor local em execução primeiro, verifique se o aplicativo da Web local está em execução. Para este exemplo, usaremos um servidor Basic Node.js Express na porta 3000. // server.js const express = requer (‘expresso’); const app = express (); Porta const = 3000; app.get (‘/’, (req, res) => {res.send (‘Olá do meu servidor de localhost seguro!’);}); app.listen(port, () => { console.log(`Server running at }); Enter fullscreen mode Exit fullscreen mode Run it with node server.js. Step 2: Install Tunnelmole If you have Node.js installed, the quickest way is via npm: sudo npm install -g tunnelmole Enter fullscreen mode Exit fullscreen mode Alternatively, for Linux, Mac, or WSL, you can use O script de curto: Curl -o && sudo bash instalar insira o modo de tela cheia de tela cheia Os usuários do Windows podem fazer o download do tmole.exe binário. e a Internet acessível sempre usa o Modo Full -Screen Mody Screen, que você tem um servidor que você pode servir Configuração. O cliente Tmole em sua solicitação local: o cliente faz uma solicitação HTTP padrão para o servidor local (por exemplo, localhão: 3000). e sem armazenamento de confiança para modificar. Trabalho em andamento sem implantação. A garantia do seu ambiente de desenvolvimento local com HTTPS é essencial para o desenvolvimento da Web moderno. Servidor acessível com segurança à Internet para testes de webhook, colaboração e depuração de dispositivos reais.

Fonte

Publicar comentário

Você pode ter perdido