【问题标题】:Redirect SSL Short Name to FQDN将 SSL 短名称重定向到 FQDN
【发布时间】:2014-12-25 04:24:23
【问题描述】:

我为内部 Web 服务器购买了 SSL 证书,它仅在我使用服务器的 FQDN 时才有效。有没有办法在 httpd.conf 中使用重写规则来完成这个?我已经有两条规则,它们是:

RewriteCond %{HTTP_HOST}   !^web2\.internal\.domain\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^/(.*)         https://web2.internal.domain.com/$1 [L,R]

RewriteCond %{HTTP_HOST}   ^web2\.internal\.domain\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^/(.*)         https://web2.internal.domain.com/$1 [L,R]

我使用这些来强制 http 到 https,一个用于短名称,一个用于 FQDN。

谢谢

【问题讨论】:

  • 看来您的最终目标是让所有到此 Web 服务器的流量都在 https://web2.internal.domain.com 提供服务。这个对吗?如果是这样,这两个规则可以合并为一个并通过仅检查 (a) 如果端口是 80 or (b) 如果域不是 FQDN 来简化。如果其中任何一个为真,则重定向到 https 和 FQDN。有没有我遗漏的其他复杂性?
  • @David - 可能会让人毛骨悚然,但 FQDN 以点结尾。所以www.www.example.com. 都被认为是完全合格的。事实上,我经常用它来做一些事情,比如使用https://wiki.https://wiki.example.com 连接到专用网络中的服务器
  • 同意我可以简化重写规则,但如果 web2..... 是在浏览器中输入的,我无法让它们工作。使用 http://..... 一切正常。我错过了什么吗?还有,感谢您的帮助。
  • 换句话说,重写规则仅适用于 http 到 https。当我使用 https 和非 FQDN 时不起作用。

标签: apache


【解决方案1】:

根据您的 cmets,我认为问题在于您的两个规则都测试 SERVER_PORT = 80,如果您通过 https 访问,则不匹配。这是一个适用于您的案例的合并规则:

RewriteCond %{HTTP_HOST}   !^web2\.internal\.domain\.com$ [NC,OR]
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$         https://web2.internal.domain.com$1 [L,R]

这两个条件检查网站是否被不同的域访问,例如只是“web2”,,如果它在整个域上但通过端口 80(不是 SSL)被访问。如果任一情况为真,则用户将被重定向到具有完整域的 https。

【讨论】:

  • 大卫,谢谢你的更新,但我真的没有比以前更接近了。以下是有效和无效的方法:web2.internal.domain.com --> 成功重定向到 https web2..... --> 成功重定向到 https web2..... --> 不重定向到 @ 987654324@ 我很欣赏我的重写规则的缩短。如果有任何方法可以使最后一部分工作,我感谢您的帮助。
  • 我之前没有使用过这种缩短的域,但是如果规则没有捕捉到https://web2/ 的情况,似乎 (a) 没有达到规则(我'会在此之前添加一个故障排除规则,例如将所有对 test.txt 的请求重定向到 test2.txt 并确保规则触发 https://web2/test.txt) 或 (b) HTTP_HOST 实际上包含完整域,或者由于客户端扩展它在其请求中(检查日志以查看是否发生)或 Apache 填写完整域(不确定什么配置会这样做,但可能检查 UseCanonicalName)。
猜你喜欢
  • 2017-10-12
  • 2021-09-11
  • 2023-01-19
  • 1970-01-01
  • 2013-09-12
  • 2012-01-18
  • 2020-05-19
  • 1970-01-01
  • 2019-02-04
相关资源
最近更新 更多