是否有任何支持 HTTPS 的 DNS 系统或服务?

是否有任何支持 HTTPS 的 DNS 系统或服务?

基本上,我需要 DNS 用不同的 CNAMES 进行响应,具体取决于请求是针对 HTTPS 还是 HTTP 对象。

s.test.com -> IF(https) RESPONSE special.domain.com ELSE simple.domain.com

有可能吗?还有其他可行的方法吗?

答案1

DNS 无法做到这一点。DNS 请求完全独立于原因针对该请求。

为了实现这一点,必须废除整个 DNS 缓存系统。每次发明新方案时,DNS 也必须重写。

你想做什么?可能有更好的方法来解决你的实际问题。

答案2

不。

DNS 无法识别 HTTP 或 HTTPS。

这与向秘书询问某人的电话号码(IP 号码)相比。无论您想问对方什么,您都会得到相同的答复。

答案3

正如大家提到的,您无法使用 DNS 执行此操作。我认为这通常是通过 URL 重定向完成的。例如,如果您使用 Apache 作为 Web 服务器,则可以使用 mod_rewrite 设置重定向规则。然后您可以编写如下规则:

# If HTTPS redirect to special.domain.com
RewriteCond %{HTTPS} =on
RewriteRule .* https://special.domain.com%{REQUEST_URI} [R,L]

# If not HTTPS redirct to simple.domain.com
RewriteCond %{HTTPS} !=on
RewriteRule .* http://simple.domain.com%{REQUEST_URI} [R,L]

这里还有更多示例: http://www.askapache.com/htaccess/ssl-example-usage-in-htaccess.html

答案4

不,DNS 不知道(或关心)哪个协议正在请求查找。

相关内容