目前我正在运行一个网络服务器,
服务器本身同时使用 HTTP“端口 80”和 HTTPS“端口 443”。我购买了 SSL 证书并将其安装到问题中,应用程序制造商强烈建议我保持端口 80 开放,以保持其他相关应用程序的运行。建议的保护方法是安装重定向,我觉得这不是保护服务器的正确方法
我的问题是,什么是最佳选择,可以正确保护我的服务器并使其可访问?
谢谢你!
答案1
对于针对服务器的攻击,为 HTTP 打开端口 80 的安全性并不比为 HTTPS 打开端口 443 的安全性低。如果提供的 Web 应用程序的服务器端存在错误(即 SQL 注入或类似问题),则无论是 HTTP 还是 HTTPS,都可能被利用。
HTTP 和 HTTPS 之间的相关区别在于 HTTPS 保护客户端和服务器之间的数据传输。正确使用 HTTPS 后,攻击者无法访问传输的数据,无法修改数据,也无法冒充原始服务器,即使他可以成为客户端和服务器连接中的中间人。
为了确保客户端能够利用保护,服务器要么需要仅提供对 HTTPS 的访问(即关闭 HTTP),要么通过使用 HSTS 或将来自客户端的每个 HTTP 请求重定向到 HTTPS 来确保客户端能够访问 HTTPS 部分。如果服务器提供商可以确保客户端始终通过 HTTPS 访问服务器,则可以完全关闭 HTTP。不幸的是,目前浏览器中的默认协议仍然是 HTTP,因此尝试输入简化的 URL(即而不是example.com
)https://example.com
将尝试使用 HTTP 访问网站,如果 HTTP 端口已关闭,则会失败并显示(通常不方便用户使用的)错误消息。这是 HTTP 应保持活动状态的主要原因,即将用户重定向到 HTTPS。
答案2
您可以使用 HTTP Strict-Transport-Security 响应标头,强制客户端仅请求 https 请求。有关更多信息,请参阅:-高速传输系统