[网页教程] 利用HSTS解决全站https的兼容性问题
作者:CC下载站 日期:2018-10-09 06:53:59 浏览:1828 分类:站长帮
导读:目前,很多站都开始实现 HTTPS 了,而且其中的大部分强迫症站长还会开启强制 HTTPS 机制,对于网站的 HTTP 请求全部 301 跳转到 HTTPS,从而实现全站 HTTPS。这明显是一个粗暴的做法,下面博主就分享一下目前正在使用的柔性做法,告别粗暴。
一、HSTS 协议
这里我们要借助一个新的安全协议:HSTS
HSTS(HTTP Strict Transport Security)国际互联网工程组织 IETE 正在推行一种新的 Web 安全协议,作用是强制客户端(如浏览器)使用 HTTPS 与服务器创建连接。
主要目的是为了解决 HTTPS 网站首次请求时使用的是未加密的 HTTP 协议,也就说用户一般访问我们的网站都是直接在浏览器输入域名,比如 zhangge.net,然后我们的服务器检测到是 HTTP 请求,就 301 跳转到 HTTPS 页面。那么前半程采用的就是未加密的 HTTP 请求,同样存在被劫持的可能,那么 HTTPS 说好的安全性也就大打折扣了!
在我看来,HSTS 还有另外一层好处:增强网站的兼容性。
以往分享的全站 HTTPS 都是采用 301 强制性跳转,而且还会区分下低版本 IE、不支持 HTTPS 的搜索引擎来忽略 301 跳转,很明显这样做无法照顾到所有情况。那么如果是用 HSTS 呢?
采用 HSTS 后,支持这个协议的浏览器会自动跳转到 HTTPS 页面,返回码为 307:
而不支持 HSTS 的浏览器访问我们的网站,则不会产生跳转,从而提高了兼容性。这个机制对于不支持 HTTPS 的搜索引擎来说是非常友好的做法了!
二、开启 HSTS
开启 HSTS 很简单,只要在我们网站的响应头里面新增 HSTS 即可,下面简单说下
①、Nginx 服务器
只需要在站点 server 模块内插入如下配置并重启:
server{ listen443ssl http2; server_name zhangge.net; # 直接在server插入测试居然不生效,最后发现要在location ~ *php 内插入: location~[^/]\.php(/|$){ add_header Strict-Transport-Security"max-age=63072000; includeSubdomains; preload"; # 以下略...
②、Apache 服务器
# 先在Apache加载mod_header库,一般位于httpd.conf文件,自行搜索mod_headers并取消注释LoadModule headers_module modules/mod_headers.so#然后在站点VirtualHost里面插入HSTS响应头信息,比如:<VirtualHost *.*.*.*:443>Header always set Strict-Transport-Security"max-age=63072000; includeSubdomains; preload"</VirtualHost>
③、LigHttpd
将下述配置增加到你的 Lighttpd 配置文件(一般是 /etc/lighttpd/lighttpd.conf)并重启:
server.modules+=("mod_setenv")$HTTP["scheme"]=="https"{setenv.add-response-header=("Strict-Transport-Security"=>"max-age=63072000; includeSubdomains; preload")}
④、通用方法
如果你用的虚拟主机,或者不会折腾 WEB 软件,那么可以采用更简单的通用方法。原理很简单,通过代码来新增响应头即可,这里只分享一下 php 的做法,其他语言自行参考:
header("Strict-Transport-Security: max-age=63072000; includeSubdomains; preload");
三、相对链接
当然,为了兼容不支持 HTTPS 的客户端,我们还需要将网站的所有超链接都改成相对模式:
<ahref="http://www.domain.com/1.html"target="_blank">描文本</a>
<ahref="//www.domain.com/1.html"target="_blank">描文本</a>
好处就是,不管是 HTTP 还是 HTTPS 请求,页面中的地址都是和请求协议保持一致,避免出现页面是 HTTP,而页面中的链接却是 HTTPS 的情况,那么前面的做法也就没了意义。
如何修改为相对模式,估计有同学又玩不转了。万变不离其宗,和以前纯代码启用七牛 CDN 一样!
//将所有超链接改为相对模式if(!is_admin()){ob_start("rewrite_urls");}functionrewrite_urls($buffer){$buffer=preg_replace('/("|\')http(s|):\/\/([^"\']*?)'.$_SERVER["HTTP_HOST"].'/i','$1//$3'.$_SERVER["HTTP_HOST"],$buffer);return$buffer;}
、提交 HSTS
上文已介绍了 HSTS,主要是为了解决 HTTP 请求 301 跳转到 HTTPS 这个过程被劫持问题,而实际上就算加上 HSTS 响应头,用户请求的前半程依然是 HTTP,并没有什么 L 用。
那么,如果我们的网站启用了 HSTS,还得将网站提交到这个 Preload 清单才行了
提交地址:https://hstspreload.appspot.com/ (需要扶墙访问)
提交直到批准,我们的网站必须强制 301 跳转到 HTTPS,否则无法通过,完成审核后再取消 301 即可。
当然,提交后会显示正在提交到 preload list,快的话两三天,慢的话一两个月都是有可能的:
猜你还喜欢
- 03-29 [环境测试] Hexo部署GitHub Pages
- 03-22 [源码设置] 如何设置Xiuno BBS URL-Rewrite(伪静态设定)
- 03-06 [建站交流] PicGo + smms 构建图床
- 11-18 [emlog技巧] Emlog非插件显示评论者IP属地
- 11-09 [网站维护] WordPress 后台速度慢?加快仪表板速度的 15 种方法
- 11-09 [WordPress插件] 10 个最好用的 WordPress 聊天机器人插件(免费和付费)
- 11-09 [WordPress开发] 探索 WordPress 6.3 中的增强样板(Patterns)
- 11-09 [网站维护] 无需插件即可优化 WordPress 速度的 12 种策略
- 11-09 [网站安全] WordPress 安全统计:WordPress 到底有多安全?
- 09-20 [jsp技术] JSP ssm 特殊人群防走失系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
- 09-15 [Lightsail容器] AWS Lightsail VPS:一种在云中运行容器的简单方法
- 07-28 [运维笔记] 解决网站出现"SSL_ERROR_RX_RECORD_TOO_LONG"问题
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[跨境电商] TikTok中视频课程30天线上陪跑
[电影] [摩登笑探 冇面俾].1995.HDTV1080i.国语中字
[电影] 非常偵探/The Private Eye Blues 1994
[摄影] 让手机秒变单反的手机拍摄好物
[电影](香港怀旧老电影)《情义我心知》1989.VCDRip.MKV[粤语双字]
[电影] [五个堕落的男女][HD-MKV/1.88G][国语中字][1080P]
[游戏娱乐] 《赤痕:夜之仪式》v1.50中文版
[游戏娱乐] 《极乐迪斯科》v20230509导演剪辑版
[电影] 2023年美国剧情片《包围》BD中英双字
[课程] 张景明教授《一病一讲·100集》
[资料] [大学期末救急课] 猴博士+高斯课堂+斐多课堂,全集视频合集
[云资源] 价值2万元的老男孩Python教程
[书库] 史上最全摄影书推荐(附700本PDF版打包下载)
[云资源] 花了一千多元买的私人健身教程
[下载工具] Internet Download Manager 6.42.7 (IDM)
[影视] 灌篮高手 WEB-DL版下载/Slam Dunk/スラムダンク/灌篮高手:THE FIRST/灌篮高手电影版 2022 The First Slam Dunk 61.35G
[资料] 3000 套电影电视剧 LOGO 宣传片常用音效合集包
[安卓软件] 酷我音乐APP_v10.7.6.4 去广告破解豪华VIP版
[即时通讯] 微信PC版WeChat 3.9.9.43 多开防撤回绿色版
[安卓软件] Solid Explorer文件管理器APP 2.8.38 破解版
[云资源] 价值2万元的老男孩Python教程
[影视] 灌篮高手 WEB-DL版下载/Slam Dunk/スラムダンク/灌篮高手:THE FIRST/灌篮高手电影版 2022 The First Slam Dunk 61.35G
[云资源] 花了一千多元买的私人健身教程
[书库] 史上最全摄影书推荐(附700本PDF版打包下载)
[动画] 北斗神拳(1984) [两季合集] [MKV]
[资料] 抗战阵亡将士资料+续编
[电视剧] 三体 (2024) 全8集 网飞版本 中文字幕 合集
[纪录片] 河西走廊【10集 国语 中文字幕 1080P 10.8G MP4】
[电影] 2024年喜剧片·热辣滚烫 [mp4]
[影视] 铁爪 WEB-DL版下载 2023 The Iron Claw 23.48G
- 最新评论
-
杂物房内的旧档资源不保证有效CC下载站 评论于:05-14 不能**123 评论于:05-14 我想看看mw2ddyy 评论于:04-26 好东西阿zfy123123 评论于:04-18 谢谢楼主xiaoqi 评论于:04-12 勿在线解压,勿手机解压,请在电脑上用最新款压缩软件解压!推荐360压缩或者好压CC下载站 评论于:04-10 无法解压啊,客服能不能给个解压教程ravengrey 评论于:04-10 谢谢支持!!CC下载站 评论于:03-26 很棒的资源,感谢分享云体风身 评论于:03-26 感谢分享,好东西云体风身 评论于:03-26
- 热门tag