惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
V
Visual Studio Blog
有赞技术团队
有赞技术团队
U
Unit 42
D
Docker
小众软件
小众软件
F
Full Disclosure
I
Intezer
Scott Helme
Scott Helme
P
Privacy International News Feed
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
B
Blog
Martin Fowler
Martin Fowler
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Spread Privacy
Spread Privacy
宝玉的分享
宝玉的分享
S
Security Affairs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
月光博客
月光博客
C
Cisco Blogs
云风的 BLOG
云风的 BLOG
Schneier on Security
Schneier on Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Threat Research - Cisco Blogs
量子位
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Heimdal Security Blog
N
Netflix TechBlog - Medium
H
Hacker News: Front Page
P
Proofpoint News Feed
G
GRAHAM CLULEY
V
Vulnerabilities – Threatpost
S
Schneier on Security

东东's Blog

Memos: MacOS 下编译安装 Aseprite 脚本 日本关西系列|Day 2 京都的半日闲逛 美国Apple官网购买礼品卡订阅 ChatGPT Plus 北京・中关村森林公园(2026) 日本关西系列|Day 1 抵达临空城与大阪首日 Memos: 查询 Apple ID 注册时间 Memos: Ghostty 开箱即用配置 代码考古:用 gitcharts 挖掘 Git 仓库的演变轨迹 烹饪日记:香煎罗非鱼 Memos: 新时代程序员的顶级焦虑 Memos: 博客新增图文布局和轮播图效果支持 Memos: 最适合空气炸锅烤着吃的红薯品类 Memos: 记录「95分」好吃的‘小帅香菇面’ 妻子爷爷的‘朝鲜军功奖章’ Memos: 博客切换为 Shiki 代码高亮方案 Memos: 博客新增划线、重点及荧光笔效果支持 记录博客字体分包与字体子集化 Memos: 邻座吃饭的一家三口 人在囧途之哈囧 哈尔滨・乡村的冬季 查看香烟生产日期 哈尔滨・东北虎林园 Memos: 来自日本的 ndjp 提供免费的三级子域名 Memos: 刚听说 autojump, 真的好用 Memos: 体验 OpenCode + Superpowers + GPT 5.2 开发需求 Memos: 杰我睿爆雷 GoReleaser 自动发布 Go 镜像到 DockerHub & GitHub Release 初识 Volta & Corepack 前端版本管理工具 部署 Beszel 把 “小鸡们” 归拢起来 Memos: Claude Code in Action 中文版教程 2025 年度回顾 Memos: 体验 tanaos-text-anonymizer-v1 NER 模型 Memos: 查询 Google 账号注册时间 Memos: 关于 Z30 在室内摄像被手机降维打击这点儿事儿 阅读《我与地坛》 Memos: Ghostty + Neovim + LazyVim Memos: 找到 Cursor 运行巨慢的一个原因 Memos: 京东家政 哈尔滨灵活就业人员医保退休待遇申领条件 记地暖不热的维修过程 Memos: 赛博菩萨 Cloudflare 又挂了 AnyTLS 软件的配置与使用 阅读《在巴东》 Memos: Web Archive 暂时离线 忆时光:十五年前我的家(动迁前夕) macOS 系统部署 Valkey 集群模式 阅读《一个名叫欧维的男人决定去死》 Memos: Cursor 服务故障部分功能不可用 阅读《丰乳肥臀》 爱人回家送奶奶 Memos: AWS 美东可用区 P0 故障(us-east-1) 2025 北京社保下限上调|个体户缴费随之上涨 铁锅重生记 不锈钢盆与放心水源改造计划 阅读《不被大风吹倒》 基于 Supabase 构建示例应用(中篇):实现 Vue 前端页面 基于 Supabase 构建示例应用(上篇):数据库与接口 阅读《三体》之地球往事 Oracle Free 实例重装系统 非京籍个体户缴纳社保(补充):“无有效的汇总预处理信息” 解决办法 阅读《芯片简史》 阅读《简约至上:交互式设计四策略(第2版)》 阅读《审判》 阅读《统计数字会撒谎》 达达秒送骑士 日本关西系列|在动物园前站找到海南本线 观影《长安的荔枝》 Memos: 记录两个在线工具 地球 Online:外卖骑手体验报告 杜师傅夜话:附身与归途 日本关西系列|使用投放硬币的行李寄存箱 日本关西系列|将多余零钱充值到西瓜卡 日本关西系列|网上购买大阪往返白滨高速巴士 乌鲁木齐・赛里木湖 “778 老哥” 摄影摘选(转载) 使用 Restic 来备份重要数据 Backing Up Important Data with Restic Sauvegarder des données importantes avec Restic Resticで重要なデータをバックアップする Cursor 开发 Obsidian 插件记录 非京籍个体户缴纳社保(十):新增并缴纳个人所得税-工资薪金 非京籍个体户缴纳社保(九):公积金开户增员与缴费 非京籍个体户缴纳社保(八):税务申报与工商年报 非京籍个体户缴纳社保(七):社保费用申报与缴纳 非京籍个体户缴纳社保(六):医保公共服务平台 - 增员确认 非京籍个体户缴纳社保(五):北京电子税务局 - 税务报道 非京籍个体户缴纳社保(四):北京市社会保险网上服务平台 - 增员与社保卡领取 非京籍个体户缴纳社保(三):社会保险网上服务平台 - 单位信息登记 非京籍个体户缴纳社保(二):北京 e 窗通平台提交申请 非京籍个体户缴纳社保(一):概览与先期准备 养老保险零基础入门指南(速通版) 了解北京门诊看病工会“二次报销”互助金 注册 US.KG 免费域名(dpdns.org) 白嫖 Cloudflare R2 + Worker 搭建私有镜像仓库 再思 JWT 的使用场景和算法选择 黑龙江・木兰县属小村落的星空(2024) Nginx 启用 HTTPS/3 了解 OCSP Stapling 证书吊销验证机制 山东・烟台中秋两三日(2024) 分享改造后的博客发布流程和访问链路 边缘网络:白嫖 Cloudflare R2 博客图床(DNS 国内外分流)
优化网站的 SSL Labs 总体评级为 A+(禁用旧协议 & 启用 HSTS)
2024-09-28 · via 东东's Blog

使用 SSL Labs 检测

安全等级为 B,接下来调整服务器配置,使其升到 A+

PS:几年前部署博客,印象中记得测试评分还是 A,本篇文章根据 SSL Labs 提示对博客安全等级进行提升,主要涉及以下两点

  1. 禁用 TLS 1.0 和 TLS 1.1,开启 TLS 1.3 支持
  2. 启用 HSTS 支持

TLS 支持版本调整

支持 TLS 1.0 也会导致 PCI DSS 不合规,使用 https://myssl.com 进行检测时会提示

PCI 安全标准委员会规定 2018 年 6 月 30 日之后,开启 TLS1.0 将导致 PCI DSS 不合规

具体参考:《更严格的 PCI DSS 合规标准》

简单说,如需符合 PCI DSS 至少禁掉 TLS 1.0,想要评分摆脱 B,TLS 1.1 也要禁掉,同时推荐开启 TLS 1.3,未来主流应该是 TLS1.2 + TLS1.3

设置支持的最低 TLS 版本为 1.2

又拍云

Bitiful 图床

Cloudflare Page & Cloudflare R2 图床

无需设置,Cloudflare 默认关闭 TLS 1.0 和 TLS 1.1,开启 TLS 1.3 支持

测试服务器是否支持 TLS 1.3 版本

命令如下

$ openssl s_client -connect blog.yasking.org:443 -tls1_3 | grep TLS

不支持 TLS 1.3

支持 TLS 1.3

修改 TLS 版本支持后,Rating 将变为 A,想要 A+,需要进一步开启 HSTS

启用 HSTS(HTTP Strict Transport Security)

HSTS(HTTP 严格传输安全)是一种机制,服务器可以通过它指示浏览器在与它通信时必须使用安全连接。它可以成为保护用户及其数据的隐私和安全的有效工具。

然而,当首次连接到一个HSTS主机时,浏览器并不知道是否应该使用安全连接,因为它从未从该主机收到过HSTS头。因此,活跃的网络攻击者可能会阻止浏览器进行安全连接(用户可能永远不会意识到有问题),为了缓解这种攻击,主流浏览器中添加了一个默认强制执行 HSTS 的主机列表,当用户首次连接到这些主机之一时,浏览器将知道它必须使用安全连接。如果网络攻击者阻止与服务器的安全连接,浏览器将不会尝试通过不安全的协议进行连接,从而保持用户的安全。

仅开启 HSTS 但不提交到 Preload List

HSTS 开启前状态

开启 HSTS 即添加一个 Header 返回头(strict-transport-security: max-age=15552000),Nginx 配置片段如下

add_header Strict-Transport-Security "max-age=15552000";

这里也以又拍云为示例,如果你仅仅希望单域名(主域名、子域名)的评分上到 A+ 而不关心是否进入 Preload List,那么配置的时候根据情况选择是否包含子域名,同时不要勾选预加载选项,缓存时间推荐 180 天

需要注意不存在满足 “提交 Preload List 要求” 但不提交的 “中间状态”,如果你不想提交到 Preload List,请务必不要满足其要求(如不勾选 “预加载”),否则很可能被其他人提交,提交不需要验证网站所有者

仅配置 max-age 就可以通过 SSL Labs 检测,再次检查子域名,评分变为 A+,目标已经达到了,如果你还不确定是否会长时间保持所有域名都上 HTTPS,可以点到为止

启用 HSTS 并提交到 Preload List

提交到 Preload List 就是提交到 https://hstspreload.org

提交成功大概几周后,主流浏览器将会内置到自身的浏览器中,Firefox 浏览器关于 Preloading HSTS 的说明介绍了它的列表基于 hstspreload.org 的数据整合,虽然其由谷歌维护,但它是一个事实上的通用列表

提交 Preload List 之前,首先要了解其注意事项,同时服务需要满足一定条件

注意:开启后则不能随时关闭,不能再实时降级为 HTTP

如需关闭强制 HTTPS 访问,必须首先在服务器上禁用 HSTS 配置,并等待 max-age 过期,以确保每个浏览器都知晓此更改,然后才能禁用 HTTPS,平均的 max-age 为六个月,如果在禁用 HSTS 之前移除 HTTPS,网站将无法访问,最长可达 max-age 的时间,或者直到您再次支持 HTTPS,由于在启用 HSTS 的网站上禁用 HTTPS 可能会产生这些后果,强烈建议您在启用此功能之前已经有一个稳定的 HTTPS 服务

提交 Preload List 的必备条件

1)提供有效的证书

即网站能够通过 HTTPS 正常访问(e.g. https://yasking.org / https://blog.yasking.org

建议开启 HSTS 前,你的网站已经启用 HTTPS 一段时间且稳定运行

2)如果你在监听 80 端口,请将 HTTP 重定向到同一主机的 HTTPS

网站能自动重定向 HTTP 到 HTTPS,或者不监听 80 端口的 HTTP 访问,推荐前者

3)所有子域名都通过 HTTPS 提供服务(e.g. *.yasking.org / *.*.yasking.org

特别注意 HSTS 预加载适用于所有子域名,包括非公开访问的内部子域名

也需要注意如果 www 子域名在 DNS 解析中存在,则它也需要支持 HTTPS

4)在 HTTPS 请求的基域上提供 HSTS 头

  • max-age 必须至少为 31536000 秒(1年)
  • 必须指定 includeSubDomains 指令
  • 必须指定 preload 指令
  • 如果你在 HTTPS 站点上提供额外的重定向,该重定向仍必须包含HSTS头(而不是它重定向到的页面)

可以放心大胆的在 https://hstspreload.org 点击提交,它会自动检测,不满足条件会给出提示,照着改就好,直到满足条件,最终提交前还有一步确认

如果你的主域名在 Cloudflare 和 又拍云,满足提交 Preload List 的配置如下

位置在 “网站” - “SSL/TLS” - “Edge Certificates” - “HTTP Strict Transport Security (HSTS)”

又拍云

补充说明:当主域名被预加载收录后,子域名的访问也会继承主域名的策略,重复在子域名返回 Header 对提交收录没有用处

为了提交 HSTS,我的网站主域名解析到了 VPS 上的 Nginx 默认欢迎页面,这是我的 Nginx 配置

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name yasking.org;
    merge_slashes off;

    # 证书
    ssl_certificate /etc/letsencrypt/live/yasking.org-0001/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yasking.org-0001/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';

    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;

    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8;

    # 启用 HSTS
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
    add_header X-Content-Type-Options nosniff;

    # 日志配置
    access_log /var/log/nginx/yasking.access.log;
    error_log /var/log/nginx/yasking.error.log;
}

# 强制 HTTP 重定向到 HTTPS
server {
    listen 80;
    server_name yasking.org;
    return 301 https://$server_name$request_uri;
}

我们访问主域名确认已开启 HTTPS

同时查看主域名的 Header,其返回了满足条件的 Strict-Transport-Security 头部

以下是提交到 https://hstspreload.org 时的截图记录

如果提交子域名会提示需要输入网站主域名

如果检查没问题页面会变为绿色,同时有两个选项,提交前需要再次确认

显示提交成功

过几周再次查看当前链接:https://hstspreload.org/?domain=yasking.org 获取提交状态(注意将 domain 换成你自己的地址)

此时查看会显示 Pending 状态

一旦收录,那么恭喜你没有短期的后悔药让你的网站再回退到 HTTP,请确保你当前域名以及其所有子域名持续支持 HTTPS 访问!

后悔药参考链接:https://hstspreload.org/removal/

启用 HSTS 后,经过一段时间,提交的域名会出现在 Chromium 代码仓库中:transport_security_state_static.json

修改后的检测结果

https://myssl.com 结果

SSL Labs 结果

HSTS 收录了!

算算将近两个月的时间

“Status: yasking.org is currently preloaded.”

在chromium 代码仓库也可以看到网站已进入源码

参考