首页 > 解决方案 > 有关 Nginx 如何在 Google 计算引擎上使用 SSL 的详细信息

问题描述

我已成功将我的 Spring Boot 应用程序部署到 Ubuntu 18.04 上的 Compute Engine,它位于 Nginx 代理之后,但当前 Nginx 正在侦听 80 端口,即 http。我需要设置安全连接。我对一些细节有疑问,我对此很陌生,到目前为止我所做的只是在 IDE 中的 Windows 上编写 spring boot/react js 应用程序。

  1. 是否有必要为我的计算引擎购买一个域,或者我可以为计算引擎的外部 IP制作 SSL ?在计算引擎上只部署了后端 rest api,前端在 Netlify 上并且它已经在工作了。我不需要一个好听的后端域名,因为用户不会看到它,只有前端应用程序会使用我的计算引擎的外部 ip从后端获取数据。
  2. 我在 Nginx 的设置中看到了设置 SSL 的指南,这是为什么呢?请求不是首先到达计算引擎的外部 ip,然后才到达 Nginx 吗?计算引擎的工作不是通过向前端发送公钥和证书来进行安全连接,然后才将请求中继到 Nginx 吗?还是计算引擎只是简单地将收到的 https 请求转发给 Nginx,而不对其进行保护/发送任何密钥和证书?

如果您有任何建议,您可以提供一些建议,我只是想与我的后端 spring boot 应用程序建立安全连接,该应用程序位于谷歌计算引擎上的 Nginx 后面,目前仅适用于 HTTP,但不适用于 HTTPs。

标签: nginxsslgoogle-cloud-platformdnsgoogle-compute-engine

解决方案


1 . 从技术上讲,您可以拥有公共 IP 的 SSL 证书,但很少使用。您可以在RFC 5280和这个问题中找到更多详细信息。

请记住,如果您的 IP 地址更改,您的 SSL 证书将变得毫无用处

我检查了一些 SSL 提供商,发现您应该是 IP 的所有者才能获得此类 SSL 证书

如果您决定在您的证书中确实需要一个 IP,则需要考虑特定的规定、条件和限制。对于大多数人来说,最大的障碍是 IP 地址必须专门分配给您的公司或组织(而不是您的 ISP 或托管服务提供商),并通过 IP WHOIS 查找进行验证。

非常常见的问题:是否可以为 IP 地址(而不是域名)颁发 SSL 证书?对的,这是可能的。但是,有几个要求:

  • 只能颁发OV SSL证书;
  • 公司必须拥有 IP 地址(根据 IP 地址的 WHOIS 信息进行验证)。

IP 地址 SSL 证书直接与提交的 IP 地址保护连接。虽然 SSL 证书通常颁发给完全限定域名 (FQDN),但某些组织可能需要保护 IP 地址。

根据RIPE的记录,只能使用公共 IP 地址,并且您必须是该 IP 地址的所有者

结果,实际上,在 GCE VM 实例的情况下几乎不可能,并且更容易继续使用域证书。

2 . 在 GCE 中,与 VM 实例的外部 IP 的所有连接都直接传递到 VM 实例。GCE 无法自行保护连接。您应该在 VM 实例上配置 SSL 证书。您可以在文档VPC 网络概述IP 地址中找到更多详细信息。

此外,您可以在外部 HTTP(S) 负载平衡器上使用Google 管理的 SSL 证书或自己的 SSL 证书。


推荐阅读