如何在 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 设置的详细分析,可以发现潜在的问题。

我的开源项目

相关推荐
AI大模型应用之禅16 小时前
全球股市估值与可持续农业垂直种植技术的关系
网络·ai
掘根16 小时前
【仿Muduo库项目】HTTP模块2——HttpRequest子模块,HttpResponse子模块
网络·网络协议·http
MOON404☾19 小时前
006.Backdoor后门编写
网络·安全·网络安全·系统安全
ha204289419419 小时前
Linux操作系统学习记录之---TcpSocket
linux·网络·c++·学习
李白你好20 小时前
Burp Suite插件 | 高级HTTP头操作工具
网络·网络协议·http
SelectDB20 小时前
从 Greenplum 到 Doris:集群缩减 2/3、年省数百万,度小满构建超大规模数据分析平台经验
数据库·数据分析·apache
石像鬼₧魂石21 小时前
22端口(OpenSSH 4.7p1)渗透测试完整复习流程(含实战排错)
大数据·网络·学习·安全·ubuntu
xwj_86557433221 小时前
HTTP协议、接口测试流程、接口测试流程&文档&用例
网络·网络协议·http
RisunJan1 天前
Linux命令-iptables-restore命令(从文件批量恢复 iptables 防火墙规则)
linux·运维·网络
..过云雨1 天前
网络计算器实现 - 自定义套接字+序列化+守护进程
网络·网络协议·tcp/ip