使用 CNAME 重定向进行 SSL 加密

使用 CNAME 重定向进行 SSL 加密

这是我当前的架构:我有一个简单的网站托管在云中,需要由我的公司提供服务。因此,mysite.com 有一个 CNAME 重定向到 1234.cloud.com。我了解需要为 mysite.com 创建 SSL 证书。

以下是我的问题:

a) 获取内容时 CNAME 重定向如何工作?DNS 是否解析云 IP 地址并只允许一个 HTTP 连接到云,还是 HTTP 连接发送到我的服务器然后中继到云?哪个服务器为 mysite.com 提供 SSL 证书?我认为我需要配置本地服务器来提供 SSL 证书,因为仅靠 DNS 是不够的,但我不确定架构。

b) 如何确保我的服务器和云之间的通信也是加密的?我需要在两个服务器之间配置客户端/服务器 SSL 吗?

答案1

我认为您有些混淆了术语。CNAME 本身并不是重定向。它只是 DNS 中的一种记录类型,也称为 DNS 别名。DNS 协议最终是关于将名称映射到 IP 地址。最常见的记录类型是“A”记录,它是名称到 IP 的单向映射。而 CNAME 记录则是名称 1 到名称 2 的单向映射。

在您的例子中,CNAME 记录会告诉请求 IP“mysite.com”的客户端改为请求“1234.cloud.com”的 IP。因此,客户端随后请求 1234.cloud.com 的 IP,获取其 IP(例如 10.10.10.10)并继续连接。这一切都是在客户端的网络堆栈上完成的。Web 浏览器对此交换一无所知。它所知道的只是网络堆栈说“mysite.com”映射到“10.10.10.10”。

您的云服务器将同时托管网站和 SSL 证书(除非您在云服务器前面有负载平衡器)。除了对您公司的 DNS 区域 mysite.com 具有权威性的 DNS 服务器外,您公司的任何服务器均不涉及此过程。

确保客户端和云服务器之间的通信加密的唯一方法是禁用云服务器上的非 HTTPS 请求。

答案2

您必须了解 DNS 解析与任何 HTTPS 对话完全无关。您的系统将执行 DNS 请求以从 DNS 名称获取 IP 地址。CNAME 只是 DNS 注册表中另一条记录的别名。但最终您有一个 IP 地址。您还可以将一些记录添加到您的 /etc/hosts 文件中。

一旦你的浏览器有了 IP 地址,它就可以连接到服务器,并启动 SSL 或 TLS 会话。服务器将证书发送给你的浏览器,浏览器检查证书是否与它请求的名称相符。

通常 DNS 指向云端,指向内容分发网络。然后 CDN 会回调您的服务器以获取未缓存的元素。

相关内容