我不太熟悉服务器配置,请帮助我解决这个问题:
我有一台 Debian8 服务器和一个 SSL 证书,该 SSL 证书仅适用于我的非 www 域名,因此我想将所有 www 请求重定向到非 www 域名,通过下面的 htaccess 代码,它适用于某些浏览器,但不适用于其他浏览器
在 Chrome 上:我希望所有浏览器都能成功重定向http://www.example.com
或http://example.com
请求到此处。https://example.com
在 Mozilla 上:http://www.example.com
将请求重定向到https://www.example.com
并因“不安全连接”错误而停止工作。我认为从这里开始浏览器首先检查 www 的 SSL 证书,然后在非 www 重定向之前停止。
以下是我.htaccess
使用 https 将 www 重定向到非 www 的方法,我是否遗漏了什么.htaccess
?或者通过 DNS 或借助 apache default 找到任何其他解决方案ssl.conf
。
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
我的 SSL 证书是Certbot我按照本教程进行安装https://www.youtube.com/watch?v=-TPoGQ4IjDI&t=100s您可以看到只有一个非 www 的域名提示,没有为 www 设置 SSL 证书的选项。如果我可以为 www 获取 SSL 证书,那么我也可以解决这个问题。
答案1
它适用于某些浏览器,但不适用于其他浏览器
它不应该在任何浏览器上“工作”,除非你之前接受了无效证书?你将收到无效证书浏览器警告前您的网站收到请求。SSL 握手是请求过程中发生的第一件事,以确保连接安全,在此之前不可能实现重定向(或任何事情)。
解决您的问题的唯一方法是实施涵盖www
子域的 SSL 证书。
答案2
这应该是一条评论,但是有点长。
我认为从这里浏览器首先检查 www 的 SSL 证书并在非 www 重定向之前停止。
为什么你这么想?
您是否查看过日志来了解实际请求的内容?
出现这种情况的最可能原因是您的 Firefox 浏览器无法验证证书 - 但您检查了具体的错误消息并认为它与此处的讨论无关,因此您没有告诉我们它是什么。并且您尝试将 Firefox 直接指向https://example.com并没有出现同样的错误。
或者你真的这么做了?
答案3
它对我有用!
基本上是 SSL 术语http://www.example.com和http://example.com是不同的域。您需要重新颁发证书并添加http://example.com作为主域并添加其他域http://www.example.com