如何在没有 SSL 证书的情况下运行虚拟主机 443?

如何在没有 SSL 证书的情况下运行虚拟主机 443?

我有一个虚拟主机指令,如果输入了无效的子域,则会显示自定义 404 错误:

<VirtualHost *:80> # the first virtual host
  ServerName site_not_found
  RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>

<VirtualHost *:80>
  ServerName example.com
  ServerAlias ??.example.com
</VirtualHost>

我想设置一个虚拟主机以通过 HTTPS 连接显示相同的自定义错误。我尝试了以下操作:

<VirtualHost *:443> # the first virtual host
  ServerName site_not_found
  RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>

<VirtualHost *:443>
  ServerName example.com
  ServerAlias ??.example.com
# SSL options, other options, and stuff defined here.
</VirtualHost>

但服务器无法启动并发出错误:

服务器应支持 SSL,但未配置证书 [提示:SSLCertificateFile] ((null):0)

似乎即使未为此虚拟主机启用 SSLEngine,也需要 SSL 证书。除了提供证书之外,还有其他方法可以解决这个问题吗?关闭模块不是一个选项,因为我需要为虚拟服务器 example.com 使用 SSL。

答案1

看来即使此虚拟主机未启用 SSLEngine,也需要 SSL 证书。除了提供证书外,还有其他方法可以解决这个问题吗?

不 - 当您的浏览器https在 URL 中包含 时,它希望使用 SSL。如果没有,它将失败。Apache 告诉您这一点是出于善意,否则您将遇到一些难以理解的浏览器错误。因此,您需要在 Apache 中配置 SSL,然后才能使用 port 443

如果你不想让浏览器警告你这是一张糟糕的 SSL 证书,你需要从证书颁发机构购买一张。你免费获得https://cert.startcom.org/这些浏览器在越来越多的地方被接受,但可能没有付费浏览器那么受认可(尤其是在较旧的机器上)。我将其用于我的开发网站,尚未看到关于它们不受信任的警告,但我只使用相对较新的操作系统/浏览器。

答案2

是的,有一种方法:

配置 Apache 的 Listen 指令(在 Ubuntu 上/etc/apache2/ports.conf

其中会有类似这样的内容:Listen *:443

您可以通过添加协议来强制执行 HTTP:

Listen *:443 http

这样 Apache2 就可以作为一个简单的 HTTP 服务器监听端口 443

在此处找到:https://httpd.apache.org/docs/2.4/bind.html

答案3

由于没有任何 SSL 证书而忽略 Apache 错误,除非您创建或购买通配符证书来覆盖“无效”子域,否则您尝试执行的操作是不可能的。

如果您的所有客户端都是内部的,您可以创建一个小型签名机构并在所有机器上安装所有 CA 证书。

如果你的客户是外部的,那么你将必须购买通配符证书,费用约为 600 美元

答案4

我找到了一个简单的重定向解决方案,它可以在您输入后在您的网站虚拟主机内添加一个处理<VirtualHost xxx.xxx.xxx.xxx:80>...

<VirtualHost xxx.xxx.xxx.xxx:443>

    #ServerName www.HttpSiteDomainName.com

    #ServerAlias HttpSiteDomainName.com

    #DocumentRoot /WhereeverSiteIsOnServer

    Redirect 301 / http://www.HttpSiteDomainName.com/

</VirtualHost>
  1. xxx.xxx.xxx.xxx 是您的网站服务器 IP
  2. 将“HttpSiteDomainName.com”替换为站点域名和扩展名
  3. 不要忘记测试并重启你的服务器的 Apache
  4. 我添加了 #comments 以供参考,但你可以取消注释,它应该仍然可以工作

现在,当您访问该网站的 https 时,它将重定向到 http

相关内容