上一期写了 使用Let’s Encrypt实现网站https化 ,随着二级域名的增多,每个二级域名需要一张 SSL 证书,这可太不优雅了,泛域名表示我可以更优雅。
作者:IT王小二
博客:https://itwxe.com
本来 Let’s Encrypt 泛域名使用、Nginx 配置拆分是准备分成两篇文章来写的,可是两篇文章又感觉篇幅过短和冗余。
所以最后决定写在一篇里面吧,同时把整个流程写明白,之前有人问有了证书怎么搭配 Nginx 来配置,这篇从域名映射到Nginx配置完成的保姆级教程,小二求个点赞不过分吧。
一、SSL证书获取
写在最前面,使用过程中如有问题参考 acme官方文档 ,文档有中文说明,如果有报错可以查看 Issuse,当然也可以留言你碰到的问题。
如果你已经有证书了,直接访问第二步 域名映射配置 开始阅读即可。
由于 Let’s Encrypy 申请的 SSL 证书只有三个月的有效期,泛域名申请只能DNS验证,可以使用使用 acme.sh 脚本来获取且自动续期,前提是你的 DNS 服务商支持 DNS 调用,支持的服务商在 https://github.com/acmesh-official/acme.sh/wiki/dnsapi 中自行查看。
虽然 DNSPod.cn 支持 DNS 接口调用,不过个人结合了百度云加速 CDN 的严格加密模式,不用 CDN 来加速,那加载个图片估计都能卡成 PPT,就我服务器那小水管带宽,而百度云加速 CDN 没有可以能够自动上传证书的接口,故我没有使用自动 DNS 验证,使用了手动 DNS 验证。
手动的话每三个月就要手动更新一次证书,当然如果你没有配合其他 CDN 使用的话,可以使用 DNS 自动验证模式,每个服务商的使用方式也很简单,官方文档写的很明白了。
当然你不知道什么是自动 DNS 或者手动 DNS 也没关系,看文档或者按照我的操作一步一步来都是可以成功滴。
1. 什么是泛域名
比如用户的域名是abc.com,那么我们将主机名设置为"",IP解析到比如:218.104.78.100,大家都知道是通配符,他表明abc.com之前的所有子域名都将解析到218.104.78.100,这就意味着例如输入bbs.abc.com或者123.abc.com或者123.234.abc.com都将解析到218.104.78.100,这里需要说明的是,在我们系统里面如果单独设置一个子域名解析,比如将主机名设置为mail,单独解析到218.104.78.79,那么该解析记录优先。 – 摘自百度百科
而泛域名证书就是一张证书可以用来验证所有同级子域名的证书,例如 *.itwxe.com
的证书,那么 www.itwxe.com
、images.itwxe.com
、waline.itwxe.com
都是可以使用 *.itwxe.com
来验证的,当然 主域名itwxe.com
和三级域名 www.aa.itwxe.com
就不适用了。
不过大部分人二级域名就已经够用了,这样就避免了一个二级域名申请一张 SSL 证书,真是个优雅的方案啊。