明确SSL,DNS,网络服务器的互动

问题描述:

请原谅这个问题的庸俗性质,我不确定如何更好地说出它。明确SSL,DNS,网络服务器的互动

我有一个nodejs服务器,它将通过第三方通过各种第三方DNS访问(HTTP + websockets),在他们的DNS条目中添加一条指向我的IP的新A记录。我可以通过查看请求标题找到第三方DNS名称。然后,节点充当代理并最终修改请求标头/添加元数据,然后再将请求转发回第三方的另一个网址。

任何人都可以解释一下,当第三方证书是发起DNS的通配证书时,SSL/TLS是如何运作的;如何将加密链传递给节点 - >是否需要在节点服务器上托管第三方证书的副本? (显然我宁愿不)。我可以使用第三方的原始SSL设置任何优势?

非常感谢提前!

DNS和HTTPS在这里是非常不相关的。客户端只使用DNS来查找Web服务器的IP地址。之后,http协议包含它在Host标题中请求的主机名,正如您已经确定的那样。

您的服务器将需要每个HTTPS证书主机名称将处理请求,否则浏览器将无法与其建立可信连接。证书显示“此服务器有权处理对此主机名的请求”。

实际上,尽管DNS和HTTPS是相关的,因为如果您控制dns,您可以颁发证书。 Let's Encrypt已经使这非常容易设置。

我不会建议与第三方共享证书,因为这可能会有点痛苦,并且如果您通过电子邮件向他们发送邮件或其他内容,则更难保证私钥的安全。只需为需要提供服务的第三方域颁发自己的证书。

我个人最喜欢的解决方案就是在我的应用程序前面运行一个caddy服务器实例,以自动管理https证书,并向您的节点后端代理请求。它在接收请求时甚至可以issue certs dynamically

+0

谢谢你的解释,现在更有意义。血腥地狱球童看起来真棒!我一直在使用让我们加密,但没有意识到这可以做到如此无缝,谢谢! – Tobin