可乐分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1430|回复: 21

[建站教程] 开启HTTP Strict Transport Security (HSTS)

[复制链接]

416

主题

2

回帖

1416

积分

管理员

Rank: 12Rank: 12Rank: 12

积分
1416
发表于 2024-8-28 16:44:52 | 显示全部楼层 |阅读模式

For apache httpd
Verify if Apache HTTPD Headers module is enabled at /etc/httpd/conf/httpd.conf
  1. LoadModule headers_module modules/mod_headers.so
复制代码

Add the following configuration globally at /etc/httpd/conf.d/ssl.conf to <VirtualHost *:443> virtual host or for each SSL-enabled virtual host:
(也可能在/etc/apache2/sites-enabled/website.conf 和 /etc/apache2/httpd.conf )
  1. Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
复制代码

Restart the httpd service
  1. systemctl restart httpd
复制代码

Verify the configuration
  1. curl -v -A cUrl -k https://ol7-olvm
复制代码

2528586459.jpg

For nginx
Backup the nginx config file
  1. cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
复制代码

网上看有些朋友直接添加在 server 块中无效的情况,或许可以试试直接插入到 location ~ *php 内:
  1. location ~ [^/].php(/|$) {    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
复制代码


For IIS

确认是否安装 “URL 重写” 或者 “URL Rewrite” 模块 , 如果您已经安装可以跳过。
“URL重写” 模块下载地址
https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads
已经安装模块的话,在iis的界面可以看到如下图所示的图标:
2060651264.png
点击“添加规则”
3622193459.png
在“出站规则” 中 选择“空白规则”
312376560.png
名称:http响应 变量名称:RESPONSE_Strict_Transport_Security 模式: .*
2041120720.png
在“条件”模块中选择“添加”
4196353997.png
条件输入:{HTTPS} 模式:on
1688199745.png
值:max-age=31536000
3258540863.png
2452036299.png
操作完成后在配置文件web.config中会自动增加如下配置项:
2849320073.png
For Tomcat
如果仅对单个系统进行操作,修改项目目录中的web.xml文件。
1811649707.png
如果对tomcat下所有系统进行操作,修改tomcat/conf录中的web.xml文件。
1244971852.png
需要修改的内容如下图所示,在原来的文件中添加红色方框内的配置。
3199671118.png

  1. <filter>
  2.         <filter-name>httpHeaderSecurity</filter-name>
  3.         <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
  4.         <async-supported>true</async-supported>

  5.         <init-param>
  6.             <param-name>hstsMaxAgeSeconds</param-name>
  7.             <param-value>31536000</param-value>
  8.         </init-param>

  9.         <init-param>
  10.             <param-name>antiClickJackingEnabled</param-name>
  11.             <param-value>true</param-value>
  12.         </init-param>
  13.         <init-param>
  14.             <param-name>antiClickJackingOption</param-name>
  15.             <param-value>SAMEORIGIN</param-value>
  16.         </init-param>

  17.         <init-param>
  18.             <param-name>blockContentTypeSniffingEnabled</param-name>
  19.             <param-value>false</param-value>
  20.         </init-param>
  21.         <init-param>
  22.             <param-name>xssProtectionEnabled</param-name>
  23.             <param-value>false</param-value>
  24.         </init-param>

  25.     </filter>

  26.     <filter-mapping>
  27.         <filter-name>httpHeaderSecurity</filter-name>
  28.         <url-pattern>/*</url-pattern>
  29.         <dispatcher>REQUEST</dispatcher>
  30.     </filter-mapping>
复制代码

         
REQUEST    验证是否操作成功
通过浏览器访问网站,根据服务器返回的响应头信息,可以看出包含Strict-Transport-Security属性, 表明问题已修复。
2371167936.png
Tomcat配置参数说明
开启HTST默认会将antiClickJackingEnabled属性设置为true,antiClickJackingOption设置为DENY,这会直接导致当前页面不允许以iframe窗体的形式显示在任何系统中。
下面分情况说明相关配置:
下面涉及的文件为web.xml文件
情况一:允许任意网站以iframe窗体形式引用
如果当前网页可以被任何页面以iframe窗体形式引用,可以直接将antiClickJackingEnabled属性设置为false即可。
2406346820.png
   
情况二:允许部分网站以iframe窗体形式引用
如果只允许部分系统以iframe窗体形式引用当前网页,可以通过设置antiClickJackingOption的属性值,达到不同级别的控制。
antiClickJackingOption的属性值包括:
DENY:页面不能被嵌入到任何iframe或者frame中
SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。
ALLOW-FROM:页面只能被嵌入到指定域名的框架中。
如果允许当前网站可以被本网站嵌入到iframe或者frame中,将antiClickJackingOption设置为SAMEORIGIN。
3533746715.png
如果要配置指定的网站才有权限可以嵌入当前页面,将antiClickJackingOption设置为ALLOW-FROM。同时配置antiClickJackingUri属性,设置被允许的网站地址。
下面示例表示允许baidu网站中可以嵌入当前页面。
762357010.png

Lighttpd 中配置 HSTS
将下述配置增加到你的 Lighttpd 配置文件(例如:/etc/lighttpd/lighttpd.conf):

  1. server.modules += ( "mod_setenv" )
  2. $HTTP["scheme"] == "https" {
  3.     setenv.add-response-header  = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload")
复制代码



通用配置 HSTS 方法
如果你的是虚拟主机,不想或者不会修改配置文件,那么将以下代码添加到网站根目录 index.php 中即可:
  1. header("Strict-Transport-Security: max-age=63072000; includeSubdomains; preload");
复制代码


HSTS preload list 提交
在《关于 HSTS 安全协议的全面详细解析》一文中就已经介绍了 HSTS,主要是为了解决 HTTP 请求 301/302 跳转到 HTTPS 这个过程可能被劫持的情况,而实际上就算加上 HSTS 响应头,用户请求的前半程依然是 HTTP 协议,所以这个时候我们就需要 HSTS preload list 了。
HSTS preload list 简单的说其实就是一个清单列表,将支持 HSTS 的网站全部加入一个 Preload 的列表,而支持 HSTS 协议的浏览器请求网站前会查询当前网站是否在这个列表中,如果是那么直接转换为 HTTPS 请求!从而解决前半程为 HTTP 的问题。这样说应该能理解咯
前面我已经分享了配置启用 HSTS 的几种方法和不同的服务器环境,那么下面我据需分享一下关于如何提交到 Preload 列表。
HSTS preload list 提交地址: https://hstspreload.org/ (可能需要免费科学上网方法)
提示:从提交到批准,网站必须强制 301 跳转到 HTTPS,否则无法通过。完成审核后可取消 301 跳转。
审核时间不等,又快有慢,直到支持的浏览器完全生效可能更需要一些时间。所以如果提交了,几乎也就不用管了。
注意:加入 Preload 列表中的网站是不能轻易撤销的,域名可以删除,但是可能需要几个月甚至更长的时间才能通过 Chrome 更新来覆盖用户,而其它浏览器就更不确定了。
所以不要轻易的加入 HSTS preload list ,除非你可以确定整个网站可以长期支持 HTTPS。不然哪天你取消 SSL 证书后,用户浏览器依然通过 HTTPS 协议访问就不好了,当然你依然可以做 301 跳转。所以如果只是玩玩,我建议大家还是算了吧!






可乐分享 - 免责声明1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站信息来自网络,版权争议与本站无关
3、本站发布的相关帖子文章仅限用于学习和研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负
4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
5、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
6、可乐分享管理员和版主有权不事先通知发贴者而删除本文

回复

使用道具 举报

0

主题

552

回帖

837

积分

高级会员

Rank: 6Rank: 6

积分
837
发表于 2024-9-18 16:35:21 | 显示全部楼层
水B楼主,经验拿好
回复

使用道具 举报

0

主题

542

回帖

822

积分

高级会员

Rank: 6Rank: 6

积分
822
发表于 2024-9-20 06:37:43 | 显示全部楼层
我只是来打酱油的
回复

使用道具 举报

0

主题

528

回帖

801

积分

高级会员

Rank: 6Rank: 6

积分
801
发表于 2024-9-28 16:14:13 | 显示全部楼层
我只是挽尊的,貌似还不够十五字
回复

使用道具 举报

0

主题

608

回帖

921

积分

高级会员

Rank: 6Rank: 6

积分
921
发表于 2024-10-2 00:12:40 | 显示全部楼层
楼主你知道的太多了。
回复

使用道具 举报

0

主题

492

回帖

747

积分

高级会员

Rank: 6Rank: 6

积分
747
发表于 2024-10-4 23:48:30 | 显示全部楼层
我只是来打酱油的
回复

使用道具 举报

0

主题

518

回帖

786

积分

高级会员

Rank: 6Rank: 6

积分
786
发表于 2024-10-21 11:13:52 | 显示全部楼层
吊炸天的xx,调皮会死人的
回复

使用道具 举报

0

主题

528

回帖

801

积分

高级会员

Rank: 6Rank: 6

积分
801
发表于 2024-11-10 23:18:07 | 显示全部楼层
我只是来打酱油的
回复

使用道具 举报

0

主题

416

回帖

625

积分

高级会员

Rank: 6Rank: 6

积分
625
发表于 2024-11-16 19:18:48 | 显示全部楼层
今天没吃药感觉自己萌萌哒
回复

使用道具 举报

0

主题

414

回帖

622

积分

高级会员

Rank: 6Rank: 6

积分
622
发表于 2024-12-17 17:05:20 | 显示全部楼层
楼主节操掉了,还不快捡起来
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【可乐分享www.keleshare.cn】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|可乐分享,站长交流 ( 苏ICP备2024109924号 )|网站地图

GMT+8, 2025-5-7 03:54 , Processed in 0.122218 second(s), 25 queries .

Powered by 可乐分享

© 2023-2024 keleshare.cn.

快速回复 返回顶部 返回列表