现在的网站没有SSL/TLS证书,在浏览器上会显示不安全,因此申请证书是必须的步骤。只要为某个域名申请过证书,就会被公开记录,任何人都可以查询。那怎样才能隐藏子域名呢?

证书透明度日志

证书透明度是google发起的互联网安全机制。
早期证书颂发机构(CA)签发证书的过程是不透明的。如果CA被黑客攻击、操作失误或恶意签发证书,会导致严重的HTTPS安全问题。
证书透明度(CT)机制的核心原则:

  • 强制公开
    所有公开CA签发证书时必须将证书信息提交到公开CT日志服务器。
  • 不可篡改
    只能增加,不能删除,不能修改。
  • 公开审计
    任何人都可查询,审计,监控这些证书记录。

crt.sh

crt.sh是一个查询CT日志的公开网站,是SSL证书的搜索引擎。只要一个网站申请过合法的HTTPS证书,就会被收录。
可以查询:某个域名申请过哪些证书;历史证书记录;证书签发机构;有效期;SAN(备用域名);加密算法等详细信息。
crt.sh持续同步全球CT日志,建立索引,提供简单的web查询界面。即使 DNS 没有解析,即使服务器没有上线,域名仍然会出现在公开记录中,而且永久可查。
例如查询sina.com,163.com的结果:



网站目前不太稳定,可能要多试几次才能有结果。
从搜索结果来看,多个子域名被暴露,可以据此猜测一些子域名的用途。可能会引起一些安全问题。

如何避免泄露子域名?

  • 使用通配符证书
    例如申请”.qq.com”,CT日志只会记录 “.qq.com”,不会出现”im.qq.com”等更具体的子域名使用记录。
  • 避免敏感名字
    不使用暴露业务信息的域名。
  • 内网使用私有CA
    不公开就不会被记录到CT日志。

参考:
[为什么你的子域名会在互联网上无处遁形?](https://mp.weixin.qq.com/s/2UN64Usl0KnmYpYlsVknbg)


申请SSL证书已经可以一键生成,因此有些子域名使用起来比较随意,而这些都被永久记录在互联网上,想想就可怕。