AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1438240
Accepted
Alex Montague
Alex Montague
Asked: 2019-05-18 14:28:19 +0800 CST2019-05-18 14:28:19 +0800 CST 2019-05-18 14:28:19 +0800 CST

Servidor em execução na rede doméstica com HTTPS

  • 772

Como o título sugere, estou tentando configurar meu servidor para servir tráfego com HTTPS. Já consigo expor o servidor e receber informações dele, simplesmente sem HTTPS.

Existem alguns detalhes interessantes que abordarei, mas esse é o objetivo principal.

  1. Eu tenho um servidor Go rodando em um Raspberry Pi na minha rede doméstica que estou usando como uma API pessoal.
  2. Encaminhei as portas 80 e 443 da minha rede doméstica e apontei para o endereço IP estático do meu Raspberry Pi
  3. Eu possuo um domínio que estou apontando para o IP da minha rede doméstica.
  4. Meu servidor go está rodando na porta 8088, então eu uso o Nginx para encaminhar solicitações do IP base para a porta do meu servidor.

Até agora tudo está funcionando perfeitamente, exceto que eu gostaria de permitir que meu servidor utilize HTTPS.

Minha dúvida é que tenho muitas partes móveis nessa configuração, então o que seria responsável por garantir o HTTPS:

  • O domínio?
  • Minha configuração do Nginx?
  • O próprio servidor?
  • Uma combinação de todos os itens acima.

Eu não tenho certeza.

Apenas procurando alguma orientação para habilitar o HTTPS para este servidor, obrigado!

networking raspberry-pi
  • 2 2 respostas
  • 3577 Views

2 respostas

  • Voted
  1. Best Answer
    Roid
    2019-05-18T15:28:22+08:002019-05-18T15:28:22+08:00

    Seu Nginx pode lidar com uma solicitação http e https.

    1. Defina seu nginx para escutar na porta 80 e redirecione a solicitação 80 para 443.

      server {
          listen 80 default_server;
          listen [::]:80 default_server;
          server_name example.com www.example.com;
          return 301 https://$server_name$request_uri;
      }
      
    2. Adicione seu certificado em seu nginx e faça proxy da solicitação vinda de 443 para o servidor GO.

      server {
         listen 443;
         ssl on;
         ssl_certificate /etc/ssl/ssl-bundle.crt;
         ssl_certificate_key /etc/ssl/ssl-tutorials.key;
         server_name ssl-tutorials.com;
         access_log /var/log/nginx/nginx.vhost.access.log;
         error_log /var/log/nginx/nginx.vhost.error.log;
      
         location / {
             proxy_redirect          off;
             proxy_set_header        Host            $host;
             proxy_set_header        X-Real-IP       $remote_addr;
             proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
             client_body_buffer_size 512k;
             proxy_connect_timeout   180;
             proxy_send_timeout      180;
             proxy_read_timeout      360;
             proxy_buffering         off
      
             #Proxy request to your GO app
             proxy_pass http://<ip_server>:<port>;
          }
       }
      
    • 7
  2. Conor Patrick
    2019-05-18T15:02:31+08:002019-05-18T15:02:31+08:00

    O HTTPS deve ser tratado pelo servidor nginx, que deve estar escutando na porta 443. Ele também pode escutar na porta 80, mas é melhor servir HTTP ou redirecionar para HTTPS (porta 443), pois esse é um comportamento normal. Você não precisa de nenhuma configuração de DNS. Os aplicativos geralmente reconhecem as portas padrão 80 como HTTP e 443 como HTTPS.

    É melhor que um aplicativo como o nginx lide com as dificuldades de lidar adequadamente com HTTP e HTTPS de alto desempenho, para que você não precise pensar nessas coisas para seu aplicativo da web (ou seja, sua API Go). Observe que a conexão entre seu aplicativo Nginx e Go não precisa ser HTTPS, pois ambos estão na máquina de exemplo.

    Confira este guia Linode sobre como configurar uma configuração Nginx para HTTPS e proxy reverso para um aplicativo da web.

    Além disso, com HTTPS, você precisa ter um par de chaves assinado por uma autoridade adequada (ou seja, uma cadeia de certificados). Como isso é algo que você está usando apenas para seus próprios usos, você pode ser a autoridade adequada e gerar seu próprio certificado autoassinado. Mas também pode ser mais fácil usar o Let's Encrypt , que aproveitará o fato de você possuir o domínio e emitir um certificado válido para usar em seu site (também explicado no guia Linode).

    • 4

relate perguntas

  • A conexão do usuário ao servidor SFTP usando o FileZilla se recusa a conectar

  • Como funciona um NAT atrás de um NAT (NAT do roteador e NAT do ISP)?

  • Win10 1803: Como tornar o ponto de acesso móvel uma rede privada?

  • Como o nc identifica nomes de serviço

  • Notificar-enviar notificações aparecendo na janela

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve