AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 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

使用 HTTPS 在家庭网络上运行服务器

  • 772

正如标题所暗示的那样,我正在尝试将我的服务器配置为使用 HTTPS 服务流量。我已经能够公开服务器并从中接收信息,只是没有 HTTPS。

我将介绍一些有趣的细节,但这是主要目标。

  1. 我在家庭网络上的 Raspberry Pi 上运行了一个 Go 服务器,我将其用作个人 API。
  2. 我将家庭网络的端口转发端口 80 和 443 指向我的 Raspberry Pi 的静态 IP 地址
  3. 我拥有一个指向我的家庭网络 IP 的域。
  4. 我的 go 服务器在端口 8088 上运行,所以我使用 Nginx 将请求从基本 IP 转发到我的服务器端口。

到目前为止,这一切都运行良好,除了我想让我的服务器使用 HTTPS。

我的问题是我在这个设置中有很多活动部件,那么什么负责确保 HTTPS:

  • 域?
  • 我的 Nginx 配置?
  • 服务器本身?
  • 以上所有的组合。

我不确定。

只是在寻找为此服务器启用 HTTPS 的一些方向,谢谢!

networking raspberry-pi
  • 2 2 个回答
  • 3577 Views

2 个回答

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

    您的 Nginx 可以处理 http 和 https 请求。

    1. 将您的 nginx 设置为侦听端口 80 并将 80 请求重定向到 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. 在你的 nginx 中添加你的证书并将来自 443 的请求代理到 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

    HTTPS 应该由 nginx 服务器处理,它应该侦听端口 443。它也可以侦听端口 80,但最好提供 HTTP 或重定向到 HTTPS(端口 443),因为这是正常行为。您不需要任何 DNS 配置。应用程序通常会将默认端口 80 识别为 HTTP,将 443 识别为 HTTPS。

    最好是像 nginx 这样的应用程序能够处理正确处理高性能 HTTP 和 HTTPS 的困难,这样您就不需要为您的 Web 应用程序(即您的 Go API)考虑这些事情。请注意,您的 Nginx 和 Go 应用程序之间的连接不需要是 HTTPS,因为它们都在示例机器上。

    查看此Linode 指南,了解如何为 HTTPS 和 Web 应用程序的反向代理设置 Nginx 配置。

    此外,对于 HTTPS,您需要有一个由适当的授权机构(即证书链)签名的密钥对。由于这是您仅供自己使用的东西,您可以成为适当的授权机构并生成您自己的自签名证书。但使用Let's Encrypt也可能是最简单的方法,它将利用您拥有域的事实并向您颁发有效证书以用于您的站点(也在 Linode 指南中进行了解释)。

    • 4

相关问题

  • 用户使用 FileZilla 连接到 SFTP 服务器拒绝连接

  • NAT 后面的 NAT 如何工作(路由器的 NAT 和 ISP 的 NAT)?

  • Win10 1803:如何让移动热点成为专用网络?

  • nc如何识别服务名称

  • Notify-发送窗口下出现的通知

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    Windows 10 服务称为 AarSvc_70f961。它是什么,我该如何禁用它?

    • 2 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Marko Smith

    ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)

    • 4 个回答
  • Marko Smith

    我如何知道 Windows 安装在哪个驱动器上?

    • 6 个回答
  • Martin Hope
    Albin 支持结束后如何激活 WindowsXP? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch Windows 10 删除大量小文件的速度非常慢。有什么办法可以加快速度吗? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Ctrl+C 和 Ctrl+V 是如何工作的? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

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

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve