如何在 Apache 中启用 HSTS 以增强网络安全性 ?

HTTP Strict Transport Security (HSTS)严格传输安全是一种安全特性,帮助保护网站免受某些攻击。它确保了网络浏览器总是使用安全的 HTTPS 连接到您的网站,而不是不安全的 HTTP 协议。本指南将向您展示如何设置和改进 Apache 中的 HSTS 以获得更好的安全性。

为什么使用 HSTS?

在我们讨论如何设置 HSTS 之前,让我们先谈谈为什么 HSTS 很重要。

Stop man-in-the-middle attacks

HSTS 确保连接到您的网站始终是安全的,防止攻击者 从 HTTPS 降级到 HTTP 连接并且监视你的用户。

Stop cookie hijacking

通过强制使用 HTTPS, HSTS 可以保护用户的 cookie 免受攻击者的窃取攻击。

Meet browser requirements

一些现代浏览器要求网站使用 HTTPS,并可能显示安全警告。HSTS 可以帮助满足这些要求,并为用户提供更好的浏览体验。

在 Apache 中配置 HSTS

Access your Apache configuration file

根据您的系统,该文件可以命名为 httpd.confapache2.confssl.conf 。通常,您可以在 /etc/apache2/etc/httpd 目录中找到它。

Enable the headers module

HSTS 是作为 HTTP 报头发送的,所以您需要确保 headers 模块是启用的。在基于 debian 的系统,你可以通以下命令来启用它:

复制代码
sudo a2enmod headers 
service apache2 restart

Add the HSTS header

打开配置文件,找到站点部分,并在 "<VirtualHost *:443>"块中添加这一行:

apacheconf 复制代码
<VirtualHost *:443>
    # ...
    # ....
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    # ....
</VirtualHost>

这一行告诉浏览器在下一年(31536000 秒 = 1 年)为您的站点使用 HTTPS,包括所有子域。

Restart Apache

保存更改,然后重新启动 Apache 以应用更改。

复制代码
service apache2 restart

在 Apache 中优化 HSTS

虽然在您的服务器上启用了 HSTS,但您可以采取其他步骤使其更好。

Use a long max-age

此参数告诉浏览器要记住使用 HTTPS 的时间。更长的最长使用时间(例如,1 年)提供了更好的安全性,但如果您停止使用 HTTPS,浏览器仍然会尝试通过 HTTPS 访问您的站点,直到 max-age 过期。

Include subdomains

该参数告诉浏览器对站点的所有子域使用 HTTPS。在启用此选项之前,请确保所有子域都支持 HTTPS

避免连接问题。

Preload HSTS

即使在第一次访问您的站点时,也强制执行 HSTS。要预加载 HSTS,请在 HSTS 配置中添加 preload 指令。

apacheconf 复制代码
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

设置完成后,您可以将您的站点提交到 HSTS 预加载列表 https://hstspreload.org/ ,从预加载列表中删除可能需要几个月的时间,所以要确保这一步。

Renew your SSL certificate promptly

HSTS 需要有效的 SSL 证书。如果您的证书过期且未更新,浏览器可能会显示安全警告或阻止用户访问访问您的网站。

Test your implementation

设置 HSTS 之后,使用 Qualys SSL 服务器测试之类的工具来检查它是否正常工作。此工具提供对服务器 SSL 设置的详细分析,可以发现潜在的问题。

我的开源项目

相关推荐
FreeBuf_7 小时前
QNAP紧急修复Pwn2Own 2025比赛中遭利用的7个0Day漏洞
网络·安全·web安全
上海云盾安全满满7 小时前
安全服务是什么
网络·安全
xixixi777778 小时前
内部网关协议——OSPF 协议(开放最短路径优先)(链路状态路由协议)
网络·智能路由器
大锦终8 小时前
【Linux】网络层与数据链路层中重点介绍
linux·运维·服务器·网络
FreeBuf_8 小时前
思科CCX软件曝高危RCE:攻击者可利用Java RMI和CCX Editor获取root权限
java·网络·安全
qiudaorendao9 小时前
作业11.9
linux·服务器·apache
卓应9 小时前
路由协议的基础
网络·智能路由器
老蒋新思维10 小时前
2025 创客匠人全球创始人 IP + AI 万人高峰论坛:破局创业困境,拥抱无限未来
大数据·网络·人工智能·网络协议·tcp/ip·创客匠人·知识变现
0和1的舞者10 小时前
网络通信的奥秘:HTTP详解 (六)
网络·网络协议·计算机网络·http·https·计算机科学与技术
敢敢のwings10 小时前
AnyVP*:企业级远程办公SSL深度技术解析
网络·网络协议·ssl