随着 https
的普及,免费证书的诞生,越来越多的网站选择使用 https
来保障端对端通信的安全性。
https
的基础是 TLS
,而 TLS
是基于 PKI
的,这就要求希望获得证书的网站证明这个网站就是自己。只有你自证之后,CA
才能向他人证明你就是你,授信访问才能够得以安全实现。
那么,你要如何证明你就是你自己呢?
ToC
HTTP-01 认证
最简单的方式就是 http
了。你只要在服务器上提供这样一个文件,而文件的内容和要求的一样就行了。
当你提供了这样的文件,那也就意味着你对这个域名有所有权,因此这个子域名的证书可以颁发给你。
在实际的流程中,不仅规定了文件,还规范了文件存放的目录。通常是 http://<YOUR_DOMAIN>/.well-known/acme-challenge/<TOKEN>
。
DNS-01 认证
当服务器暂时不可用,或 80 端口不可用时,你就需要用到 DNS
认证了。
证明一个域名从属权最简单的方式就是增加 TXT
记录了,这种验证方式也是利用了这个原理。只需要增加 _acme-challenge.<YOUR_DOMAIN>
记录,就可以证明这个域名是属于你的,从而可以将这个域名的证书颁发给你。
同时,由于你可以操作 DNS
记录,因此这种认证方式还可以颁发通配符证书。
结语
在了解验证流程之后,我们就可以理解某些错误出现的原因了。如 HTTP-01
验证失败可能是因为对应的文件不存在,如果有 CDN
的话可能是因为 CDN
回源错误等。DNS-01
验证失败可能是因为 DNS
未更新等。
总之现在的证书申请流程已经很自动化了,遇到错误,就……等等?(笑