https://example.com
我有一台运行 Debian 10 的服务器。由于 LetsEncrypt 证书,它运行 Apache 2.4 以获得可在 下访问的 Web 服务。
但它也运行一个应用程序(Subsonic),它在自己的网络服务器下的端口 4040 上提供一个 Web UI,因为我没有它的虚拟主机,并且当 Apache 停止时它仍然可以访问。因此,目前该应用程序可以在 HTTP 上访问http://example.com:4040
。
我知道如何为 Apache vhost 添加 SSL 支持,但是如何为这个应用程序添加 HTTPS 支持,以便它可以在https://example.com:4040
或上访问https://example.com:1234
?
另外,我是否应该使用与该域已有的 SSL 证书不同的 SSL 证书?
在应用前添加反向代理,并在此代理上配置 HTTPS。方便的是,您正在运行 Apache,它可以愉快地为您反向代理。
就目前而言,您不能使用应用程序已经占用的端口 4040,因此除非您可以更改应用程序的端口或使其仅绑定到 localhost(127.0.0.1 等),否则您将不得不运行这个应用程序在不同的端口上。需要注意的是,如果您想通过 HTTPS 运行此应用程序,那么让不安全的 HTTP 仍然可以访问它是没有意义的,因此最好将此应用程序配置为绑定到 localhost 并使其只能通过反向代理访问。
您需要
ProxyPass
一系列配置选项来创建反向代理。这是一个不完整的例子:证书需要将客户端用于连接的主机名嵌入到其主题备用名称扩展中,因此,由于您似乎没有提出不同的主机(
example.com
在这两种情况下),因此您不需要新证书。