说起来也是够倒霉的,前两天为了搭建一个Mastodon特地去注册了一个新域名,结果全部部署好了之后发现http不能301跳转到https,Chrome浏览器提示“连接已重置”
其实看到“连接已重置”我基本就意识到这域名是中奖了,上一个主人估计是做了什么坏事。。。
但还是有点不甘心,仔细排查了一下,确认环境配置是肯定没问题的。
挂梯子能正常从http跳转到https。关掉梯子,绑了一个别的域名到服务器上,访问也没问题。
PING服务器IP也是正常,TCPPING服务器80端口也是正常。
但是只要用这个中奖的域名访问浏览器就会提示“连接已重置”。
并且此时TCPPING服务器80端口的延迟也会出问题,明显的延迟会有大幅度的变化。
OJBK,可以肯定这个域名是炸了,HTTP阻断,然后用这个网站查了一下历史的DNS更改记录:
https://completedns.com/dns-history/
19年的时候就有DNS改动,说明这域名之前就被人注册过了,至于拿来干了什么,我后续又去这个网站查了一下:
https://web.archive.org/
很可惜啥也没查到,只能说以后注册域名真的要特别小心了,这NMD一不小心就掉坑里面去了。。
最蛋疼的是Mastodon这个程序换不了域名,要是别的程序再买一个新的域名换上去就行了。
好在这个域名只是HTTP阻断,不是DNS污染。有几个解决办法,考虑了一下,我选择把域名加入HSTS Preload List。
打开这个网站检测是否符合条件加入:
https://hstspreload.org/
加入的话需要满足几个条件:
1.网站此时有一个有效的SSL证书。
2.网站此时是将HTTP跳转到HTTPS的。
3.如果域名还有其他子域名,这些域名也全部要是HTTPS。
4.在WEB服务器上配置HSTS标头。
前3个条件都很好满足,用Certbot一键签发证书就完事了,主要是第4个条件。
我是Nginx反代Mastodon,所以编辑一下nginx的配置文件,在所有需要的地方加入如下标头:
add_header Strict-Transport-Security: "max-age=63072000; includeSubDomains; preload";
配置好了之后别忘了重载了一下nginx:
systemctl reload nginx
之后重新检测,如果正常的话,可以看到下面的提交页面:
成功的话会有下面的页面回显:
然后就是漫长的等待过程了,可以看看这个列表,如果这个列表里面有你的域名了,那就说明各个浏览器差不多都支持了:
https://cs.chromium.org/chromium/src/net/http/transport_security_state_static.json
最后,GFW NMSL
lala怎么都不见你分享妹纸图了
我腰子不行了233
以前完全不知道这个
lala:
add_header Strict-Transport-Security: “max-age=63072000; includeSubDomains; preload”; 里的 :去掉
改成:
add_header Strict-Transport-Security “max-age=63072000; includeSubDomains; preload”;
好像是写错了哦,看的够仔细的。。
试着申请了HSTS,发现网页访问和申请有报错,所以仔细查了一下
请问“在所有需要的地方加入如下标头”这个所有需要的地方都是哪里呢?
我在nginx配置文件server和location都加上了,可是检测的时候一直提示:Error: No preload directive