为了账号安全,请及时绑定邮箱和手机立即绑定

在AWS上使用Kubernetes部署HTTP / 2 Web服务器

在AWS上使用Kubernetes部署HTTP / 2 Web服务器

Go
慕勒3428872 2021-04-06 17:19:01
我有一个Go服务器,该服务器当前与AWS上的Kubernetes一起运行。该网站位于53号路由和管理SSL终止的ELB之下。现在,我想在Web服务器中支持HTTP / 2以便将资源推送到客户端,并且我看到HTTP / 2要求Web服务器将使用HTTPS。据此我有几个问题。HTTP / 2需要HTTPS-在我的情况下,HTTPS逻辑位于ELB中,它为我管理SSL终止。我的应用程序将解密后的数据作为简单的HTTP请求获取。是否需要删除ELB才能在Web服务器中启用HTTP / 2?有什么方法可以将ELB保留在那里并在Web服务器中启用HTTP / 2吗?在我的本地开发中,我使用openssl生成证书。如果部署Web服务器,则需要从AWS获取CA证书并将其存储在Kubernetes证书管理器中的某个位置,然后在初始化时注入到我的Web服务器中。推荐的方法是什么?我觉得自己想念什么,所以我将不胜感激。谢谢
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

如果您的后端也不是HTTP2,则在AWS负载均衡器上部署HTTP2也没有任何好处。从技术上讲,HTTP2不需要HTTPS,但是没有人为HTTP实现HTTP2。HTTP2是一种协议优化(简单的观点),它消除了SSL协商中的往返行程,改善了流水线等。如果负载平衡器通过HTTP与您的后端进行通信,则不会有任何改善。由于HTTPS设置过程中往返次数的减少,负载均衡器的负载将略有下降。

我建议您将后端服务配置为仅使用HTTPS(将客户端重定向到HTTPS)并使用SSL证书。然后配置HTTP2,顺便说一下,这并不容易。您可以将Let's Encrypt用于SSL,效果很好。您还可以使用OpenSSL自签名证书(我不建议这样做)。您不能使用AWS服务为后端服务创建SSL证书,而只能为AWS托管服务(CloudFront,ALB等)创建SSL证书。

您还可以使用第4层(TCP)侦听器设置负载均衡器。这是在后端服务器上设置HTTP2时执行的操作。现在,从客户端到后端的整个路径都使用HTTP2,而没有双重SSL加密/解密层。

负载均衡器的一项不错的功能称为“ SSL卸载”。这意味着您在负载均衡器上启用SSL,而仅在后端Web服务器上启用HTTP。这违反了HTTP2。因此,请仔细考虑您真正想要实现的目标,然后设计服务以实现这些目标。

还有一点要考虑。由于您正在研究HTTP2,因此同时删除了对较旧TLS版本和不安全的加密和哈希算法的服务支持。如今必须强制删除TLS 1.0,并且我建议也删除TLS 1.1。除非您确实需要支持旧版浏览器或定制的低端硬件,否则TLS 1.2应该成为当今的标准。您的日志文件可以告诉您客户端是否通过较旧的协议进行连接。


查看完整回答
反对 回复 2021-04-19
  • 2 回答
  • 0 关注
  • 273 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信