【问题标题】:Adding SSL to server side rendered application将 SSL 添加到服务器端呈现的应用程序
【发布时间】:2018-09-06 21:08:21
【问题描述】:

我正在将当前 S3 托管的反应应用程序转换为服务器端呈现的反应应用程序。我知道我应该为此添加 HTTPS 以确保安全,但我对我应该做什么有点困惑。

目前,我有一个托管我的 API(这是一个微服务)的 EC2 实例。这个服务器有一个私钥和一个证书。

现在我对 SSR 的理解是这样的 -

  1. 我有一个节点服务器,它使用服务器端呈现的 html 为某些路由提供服务。
  2. 此节点服务器与我的域相关联。
  3. 当用户访问我的域时,他们将访问此服务器提供的 html。
  4. 然后此服务器将对我的 api 服务器进行 API 调用。

我想加密 3 和 4。

我的 API 服务器有一个私钥,它是带有证书的通配符。

我可以在渲染我的 html 的服务器上使用相同的私钥和证书吗?

否则,我是否为呈现 html 的服务器生成新的私钥/证书对?所以在这种情况下,有两次 SSL 握手——一次在用户和 html 渲染服务器之间,一次在 html 渲染服务器和 api 服务器之间。

后者似乎没有必要。什么是正确的选择?

【问题讨论】:

    标签: reactjs ssl single-page-application


    【解决方案1】:

    当您在 https 上提供您的网站 (UI) 时,您还必须在 https 上向您的 api 发出请求,即您不能拥有例如。 https://HelloFoo.com 从非 https api 获取数据。

    您必须从某个供应商处获得一个域,并且使用该域名您将获得一个支持该域的证书(letsencrypt 是免费服务),您必须上传证书(公钥、私钥和证书链文件)到网络负载平衡器以服务请求。

    在您的网络负载均衡器中,您应该能够为默认 (/) 创建路由以定向到您的 html 服务和 (/api/) 到您的 api 服务。

    您不仅可以在一个域的不同服务上使用相同的证书,还可以在多个域上使用它们(您需要向证书提供商注册)

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 2017-11-10
      • 2011-03-16
      • 2019-08-13
      相关资源
      最近更新 更多