使用 HTTPS 将主机名重定向到完全限定域名失败

使用 HTTPS 将主机名重定向到完全限定域名失败

首先,我不想使用重写。

我正在尝试将任何调用(HTTP 或 HTTPS)重定向到myserver使用 https 的安全完全限定域https://myserver.fullyqualified.com

这是我的配置

# Redirect all http traffic to https
<VirtualHost *:80> # line 545
  Redirect / https://myserver.fullyqualified.com/
</VirtualHost>

<VirtualHost *:443> # line 549
  ServerName myserver.fullyqualified.com
  SSLEngine on
  SSLCertificateFile "conf/mycert.crt"
  SSLCertificateKeyFile "conf/mykey.key"
</VirtualHost>
<VirtualHost *:443> # line 555
  ServerName myserver
  Redirect / https://myserver.fullyqualified.com/
</VirtualHost>

这对于 HTTP 来说工作得很好,我可以调用它http://myserver并且它可以重定向到https://myserver.fullyqualified.com很好。

然而,当我拨打电话时https://myserver,我收到有关该网站不安全的错误,并且它没有https://myserver.fullyqualified.com像我期望的那样重定向。

在 Chrome 中,错误显示

此服务器无法证明它是 myserver;其安全证书来自 myserver.fullyqualified.com。这可能是由于配置错误或攻击者拦截了您的连接所致。

这是输出httpd -S

*:80                   MYSERVER.fullyqualified.com (C:/Apache24/conf/httpd.conf:545)
*:443                  is a NameVirtualHost
         default server myserver.fullyqualified.com (C:/Apache24/conf/httpd.conf:549)
         port 443 namevhost myserver.fullyqualified.com (C:/Apache24/conf/httpd.conf:549)
         port 443 namevhost myserver (C:/Apache24/conf/httpd.conf:555)
ServerRoot: "C:/Apache24"
Main DocumentRoot: "C:/Apache24/htdocs"
Main ErrorLog: "C:/Apache24/logs/error.log"
Mutex default: dir="C:/Apache24/logs/" mechanism=default
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: using_defaults
PidFile: "C:/Apache24/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: SRVROOT=c:/Apache24

如何将 HTTPS 流量重定向到完整合格域名?

答案1

您的 HTTPS SSL 证书应该包含 myserver 作为备用名称,因为它看起来像一个阻止重定向的简单 SSL 错误。

如果是自制证书,请确保在测试之前将其安装到客户端存储中。如果您进入活动目录域,则可以通过 GPO 部署证书。

答案2

如果您的证书是https://example.com,浏览器将不会接受它访问,https://example因为名称不匹配。

除非您的浏览器(以及所有客户端的浏览器)接受了自签名证书,否则无法阻止这种情况,并且您将无法获得没有 TLD 的主机名的任何公共签名证书(例如,使用 Let's encrypt 或任何常规 CA)。

相关内容