Apache:2 个 SSL 证书,相同的 DocumentRoot

Apache:2 个 SSL 证书,相同的 DocumentRoot

我已经配置了我的网站apache,现在我正在尝试正确设置重定向。

我的网站使用通配符 SSL 认证,我的 ssl 证书涵盖 *.mydomain.com。我的证书提供商仅涵盖一级子域。我的网站网址是https://level1.mydomain.com,但我想重定向访问的用户https://www.level1.mydomain.comhttps://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,您不需要证书。

如果你输入

https://www.level1.mydomain.com

您在端口 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>

对于所有输入的用户

https://www.level1.mydomain.com

您需要为此 sub.sub.domain 购买额外的证书或获取免费的 Letsencrypt.org 证书,以便进行重定向。也许不值得这么麻烦。

顺便说一句,添加第二个虚拟主机指向同一个 DocumentRoot 可以适用于纯 HTML 页面,但不适用于应用程序。我会选择重定向。

有关重定向/重写的教程
https://www.howtoing.com/redirect-http-to-https-on-apache/

关于letcrypt
https://letscrypt.org/

相关内容