将 apache ssl 端口与相同的 openssl 端口 443 绑定到不同的端口

将 apache ssl 端口与相同的 openssl 端口 443 绑定到不同的端口

我有一台服务器(基于 Linux),我在其中安装了 dotcms,它在端口 80 上运行,openssl 在端口 443 上运行。两者都在运行过程中启动。最近,我在服务器上安装了 apache。当我启动 apache 时,它​​卡住了,因为 apache 上的默认 ssl 端口是 443,而 apache 是 80,它们都已在运行。仅出于我的任务,我只启动了 apache,而没有在端口 90 上使用 ssl。但我想在不同的端口上启动 apache 的 ssl。是否可以将 apache ssl 与相同的 openssl 绑定?

我需要在运行过程中使用默认的 dotcms,无论如何我都无法停止它,如果需要启动 apache,我只能重新启动我的 dotcms 服务。但我需要 dotcms 和 apache 并行运行。

参见该链接上的图片(由于声誉较低,我无法上传图片) http://developers89.byethost14.com/images/ssl.png

答案1

是的,可以将 Apache 绑定到不同的端口并仍然使用 SSL。

替换ListenApache 配置中的指令。配置应包含类似以下行

Listen 80
Listen 443

Apache 将监听这些配置选项定义的端口。替换它们,Apache 将监听其他端口。

但是,您仍然需要告诉 Apache 在上述端口上提供什么服务。假设您希望 Apache 开始监听端口 8080(纯端口)和 4433(ssl)。那么您需要将 Listen 指令替换为

Listen 8080
Listen 4433

此后,在这些端口上定义两个 VirtualHost,如下所示:

NameVirtualHost 0.0.0.0:8080
NameVirtualHost 0.0.0.0:4433

<VirtualHost 0.0.0.0:8080>
    ServerName the.server.name
    ServerAlias *
    DocumentRoot /var/www/plain
</VirtualHost>

<VirtualHost 0.0.0.0:4433>
    ServerName the.server.name
    ServerAlias *
    DocumentRoot /var/www/ssl

    SSLEngine On
    SSLCertificateFile /the/certificate/file
    SSLCertificateKeyFile /the/key/file
</VirtualHost>

如果您没有更多 VirtualHost 定义,则不必包含该ServerAlias指令(或ServerName)。

如果您重新启动 Apache,它将在 8080 上监听未加密的连接,并在端口 4433 上监听 SSL。请确保没有任何旧的 VirtualHost 定义包含错误的端口号。

相关内容