首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于反向代理的DNS名称和IP地址是什么?

用于反向代理的DNS名称和IP地址是什么?
EN

Server Fault用户
提问于 2023-05-10 10:50:47
回答 1查看 27关注 0票数 0

我在这个问题中也描述了同样的场景。我有一个客户端连接到一个具有多个后端服务的nginx反向代理,并且需要设置证书。

代码语言:javascript
复制
                             client
                               |
                             nginx
                       https://example1.com
                       https://example2.com 
                       https://example3.com
                             x.x.x.x
                               |
               -----------------------------------------
               |                |                      |
https://example1.com    https://example2.com    https://example3.com
   a.b.c.d:1234             e.f.g.h:5678            i.j.k.l:9012

但是,从答案中我不清楚的是,每个证书中列出的DNS名称和in应该是什么。

我的理解是:

  • 反向代理不会终止TLS连接,因此客户端绝不会看到代理的证书
    • 编辑:我意识到反向代理可以终止TLS连接,但是在我的例子中,我需要它通过。

  • 代理的证书应该列出后端服务示例1、2和3将看到的主机名/IP地址。只有后端服务才能看到这些证书。

如果以上两件事是真的,那么后端服务的证书中应该列出的DNS名称和in是什么?客户端需要在证书中看到代理的主机名/IP,对吗?但是代理应该看到他们真正的IP?

这就是我困惑的地方。

EN

回答 1

Server Fault用户

发布于 2023-05-10 11:20:54

其中一种方法是终止Nginx上的HTTPS通信,然后转到example1example2example3。在这种情况下,客户端将验证它从Nginx获得的证书,因此,当您连接到https://example1.com时,它将检查CN=example1.com是否匹配,以及它是否有效,并由可信CA签名。客户端将看到Nginx与Nginx传递给的服务之间是如何进行检查的。

问题是,此示例包含与客户端应该连接到的相同的侦听地址和通信量应该代理的地址。这应该是不同的,因此,例如,在连接到https://example1.com时,应该将该通信量转发给https://example1-something.com (以避免循环)。

Nginx可以向代理服务验证证书,这里是服务器错误中的另一个问题。您也可以忽略证书,但这完全取决于您如何处理它。从客户端的角度来看,重要的是它用有效的、可信的证书连接到服务器,这超出了给定的范围。

我自己从来没有这样做过,但从技术上讲,您可以尝试制作一个TCP代理,而不是HTTP,然后您将不得不终止代理机器上的证书,但是我认为这个想法有点像样板一样,第一种方法更容易实现。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1130817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档