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

我的开源项目

相关推荐
莫回首�1 小时前
ubuntu 20.04 多网卡配置,遇到问题总结
linux·网络·ubuntu
一个天蝎座 白勺 程序猿5 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
星辰徐哥5 小时前
5G的行业应用:工业互联网、车联网、智慧医疗中的网络支撑
网络·5g·php
头疼的程序员6 小时前
计算机网络:自顶向下方法(第七版)第八章 学习分享(三)
网络·学习·计算机网络
@insist1236 小时前
网络工程师-核心考点:网络管理体系与 SNMP 协议全解析
网络·智能路由器·网络工程师·软考·软件水平考试
我科绝伦(Huanhuan Zhou)6 小时前
分享一个网络智能运维系统
运维·网络
codeejun6 小时前
每日一Go-44、Go网络栈深度拆解--从 TCP 到 HTTP 的资源复用艺术
网络·tcp/ip·golang
北京耐用通信7 小时前
无缝衔接·高效传输——耐达讯自动化CC-Link IE转Modbus TCP核心解决方案
网络·人工智能·物联网·网络协议·自动化·信息与通信
亚空间仓鼠7 小时前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络