公网上暴露 https 端口,难免会被扫到,有些爬虫还会顺藤摸瓜根据证书找到域名,然后接着扫,在日志里留下 /wp-admin 等等记录。
虽然这些扫描对我服务影响不大,但是看到还是有点烦,因此想利用 NGINX 配置彻底隐藏我的 https 服务。
我的环境:
- 内网正常提供 80 / 443 端口服务,
- 公网仅开放高位端口,转发至 443 ( https )。
我的配置 (篇幅原因,放到 pastebin 里了):
[ https://pastebin.com/embed_iframe/bSBarvY8 ]
也就是说,这样的配置,在 [ https://域名:端口/路径 ] 里:
- https 、指定域名、端口,三者完全匹配才能完成 TLS 握手;
- 正确路径才有 HTTP 响应;
- 其他情况都是直接关闭 TCP 连接。
即使网络链路中存在中间人,截获了 SNI 域名,由于没有正确路径,依然不能获得响应。中间人只能判定其中有 TLS 流量,但不能扫描到 HTTPS 。
我想,这样应该能很好的隐蔽起我的 https 服务,只有知晓全路径的人才能访问得到。不知道这样的配置是不是还存在漏洞,欢迎大家指点讨论~