Node.js 澄清SSL、DNS和Web服务器的交互

Node.js 澄清SSL、DNS和Web服务器的交互,node.js,dns,http-headers,ssl-certificate,Node.js,Dns,Http Headers,Ssl Certificate,请原谅这个问题的含糊不清,我不知道如何更好地表达它 我有一个nodejs服务器,第三方将通过各种第三方DNS访问该服务器(HTTP+websockets),并在其DNS条目中添加指向我的IP的新a记录。我可以通过查看请求头找到发起第三方DNS名称。节点然后充当代理,并最终修改请求头/添加元数据,然后再将请求转发回第三方的另一个url 请任何人解释一下,当第三方证书是发起DNS的通配符证书时,SSL/TLS是如何运行的;如何将加密链传送到节点->我是否需要在节点服务器上承载第三方证书的副本?(显然

请原谅这个问题的含糊不清,我不知道如何更好地表达它

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

请任何人解释一下,当第三方证书是发起DNS的通配符证书时,SSL/TLS是如何运行的;如何将加密链传送到节点->我是否需要在节点服务器上承载第三方证书的副本?(显然我不愿意)。我可以使用第三方的原始SSL设置来获得任何优势吗


非常感谢

DNS和HTTPS在这里是完全不相关的。客户端仅使用DNS查找web服务器的IP地址。之后,http协议在
Host
头中包含它请求的主机名,如您所确定的

您的服务器将需要每个主机名的HTTPS证书,该主机名将处理的请求,否则浏览器将无法与其建立可信连接。证书上写着“此服务器被授权处理此主机名的请求”

实际上,虽然DNS和HTTPS是相关的,因为如果您控制DNS,您可以颁发证书。这使得设置非常容易

我不建议与第三方共享证书,因为这可能会有点痛苦,而且如果您来回发送电子邮件或其他东西,则更难保证私钥的安全。只需为您需要服务的第三方域颁发您自己的证书


对于像您这样的案例,我个人最喜欢的解决方案是在我的应用程序前面运行一个服务器实例,以自动管理https证书,以及对您的节点后端的代理请求。它甚至可以在收到请求时使用。

谢谢您的解释,现在就更有意义了。该死的球童看起来棒极了!我一直在使用let's encrypt,但没有意识到这可以如此无缝地完成,谢谢!