如何确保 Apache 端口 80 安全?

如何确保 Apache 端口 80 安全?

我在远程 VPS 上有一个 Apache 服务器。我只打开了端口 80 和 443。我目前使用端口 443 进行 SSH,使用端口 80 进行 HTTP。

我想让端口 80 使用 HTTPS 而不是 HTTP。我看到的所有解决方案都是将 HTTP 重定向到 HTTPS,如下所示:

Redirect permanent / https://mywebsite.com/

但我不认为这会起作用。

答案1

如果您将 ssh 保留在端口 443 上,它将无法工作,但是如果您将其移动到另一个端口,它就会工作。

当然,你可以将 Apache 配置为在端口 80 上使用 HTTPS,但这意味着你的用户必须明确指定要使用的端口,例如https://www.example.com:80/yourfile.html因为通常浏览器会期望在端口 80 上使用 http 而在端口 443 上使用 https。此外,用户可能会遇到防火墙问题,防火墙会做出同样的假设并阻止端口 80 上的 https。

答案2

将 SSH 端口更改为其他端口。老实说,我保留默认端口 22 - 我觉得没有理由更改它,尽管很多人建议更改它。如果更改它,确实很难找出 SSH 端口,但这并非不可能。

此外,您需要在 80 (http) 上为 Apache 提供服务,在 443 (HTTPS) 上为 Apache SSL 提供服务。如果您想通过在 Apache 端设置重定向来强制将 HTTP 重定向到 HTTPS,但是,如果您不尝试强制将 http 重定向到 https,则只需确保在 Apache 上配置并启用了 SSL(如果您不强制将 http 重定向到 https,则无需重定向)。

默认端口:

22->SSH
80->HTTP
443->HTTPS

推荐:
切勿将服务设置为使用众所周知另一项服务的端口。

答案3

只需设置一个虚拟主机来处理来自端口 80 的所有传入请求。如下所示:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile      /etc/apache2/pathtocert/Cert
    SSLCertificateKeyFile   /etc/apache2/pathtoprivateKey/Privk

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

虽然这会破坏传入的 HTTP 请求,但它可以实现确保端口 80 安全的目的(通过使任何倾向于以不安全的方式访问该端口的人无法这样做)。

笔记:重定向方法仍然会使您的用户遭受 MITM 攻击。

相关内容