我已经配置了我的网站apache
,现在我正在尝试正确设置重定向。
我的网站使用通配符 SSL 认证,我的 ssl 证书涵盖 *.mydomain.com。我的证书提供商仅涵盖一级子域。我的网站网址是https://level1.mydomain.com,但我想重定向访问的用户https://www.level1.mydomain.com到https://level1.mydomain.com。我设置了从 www.level1 到 level1 的重定向,但是当我输入时https://www.level1.mydomain.com在我的浏览器上我得到
This server could not prove that it is www.level1.mydomain.com; its security certificate is from *.mydomain.com. This may be caused by a misconfiguration or an attacker intercepting your connection.
据我了解,原因是 www.level1 是 level2 子域,而我的通配符不涵盖这一点。
我需要做什么?为 www.level1 购买另一个证书?如果是,我应该如何配置虚拟主机,以便两个证书都指向同一个 DocumentRoot 文件夹?
谢谢。
答案1
AFAIK如果你刚刚进入
www.level1.mydomain.com
在浏览器地址栏中,您通过端口 80 http 协议请求 mydomain.com 网络服务器。对于 http,您不需要证书。
如果你输入
您在端口 443 / https 上询问需要证书。
如果您输入
level1.mydomain.com
并且仅将您的网络服务器配置为使用 https/443 您会收到一条错误消息,网络服务器未侦听端口 80(502 错误网关 - 或其他)。
您需要为侦听端口 80/http 的所有域/虚拟主机添加重定向/重写到 https。这很简单 - 不需要证书 -
像这样(未经测试)
<VirtualHost *:80>
ServerName level1.mydomain.com
Redirect / https://level1.mydomain.com
</VirtualHost>
<VirtualHost *:80>
ServerName www.level1.mydomain.com
Redirect / https://level1.mydomain.com
</VirtualHost>
对于所有输入的用户
您需要为此 sub.sub.domain 购买额外的证书或获取免费的 Letsencrypt.org 证书,以便进行重定向。也许不值得这么麻烦。
顺便说一句,添加第二个虚拟主机指向同一个 DocumentRoot 可以适用于纯 HTML 页面,但不适用于应用程序。我会选择重定向。
有关重定向/重写的教程
https://www.howtoing.com/redirect-http-to-https-on-apache/
关于letcrypt
https://letscrypt.org/