https 免费证书获取指引
发布于 1 年前 作者 alsotang 3375 次浏览 来自 分享

https 已经是目前有逼格网站的标配。https 在现在也不像之前一样高价或难以配置。 以下介绍几种常见的 https 证书获取方式,并说说 https 证书颁发验证过程中几个有趣的点。


1, 通过 let’s encrypt

它由 ISRG(Internet Security Research Group,互联网安全研究小组)提供服务,而 ISRG 是来自于美国加利福尼亚州的一个公益组织。Let’s Encrypt 得到了 Mozilla、Cisco、Akamai、Electronic Frontier Foundation 和 Chrome 等众多公司和机构的支持,发展十分迅猛。

申请 Let’s Encrypt 证书不但免费,还非常简单,虽然每次只有 90 天的有效期,但可以通过脚本定期更新,配好之后一劳永逸。

相关的配置过程可以参考:https://imququ.com/post/letsencrypt-certificate.html

2, 腾讯云免费 ssl 证书申请

https://console.qcloud.com/ssl

untitled1.png

这个证书申请就跟常规的证书申请流程类似了。只是我个人是腾讯云的,熟悉这个产品,觉得流程很清晰,就推荐出来

3, CDN 服务商一键提供

据说 cloudflare 目前是接入了之后就自动获得 https 的特性,这个我同事说他确认了。

而在国内的来说的话,接入腾讯云 CDN 之后,也可以一键开启。毕竟用户访问网站的节点都是 CDN 提供的,CDN 只要在自己的服务器上配置好证书即可让用户一键开启。


证书校验的几种方式:

1, 邮箱验证

邮件校验就是,比如我有 cnodejs.org 这个域名,证书颁发商就发个邮件到 admin@cnodejs.org ,如果我能成功接收这个邮件,则说明我具有域名的控制权,可以被颁发证书。

2, 文件校验

这个校验方式也挺常见的。证书颁发商给你一个 5d41402abc4b2a76b9719d911017c592.html ,让你放到 http://cnodejs.org/5d41402abc4b2a76b9719d911017c592.html 下,如果你能放置成功,则也可以颁发。

3, dns 校验

这个是说,证书商会让你把类似 5d41402abc4b2a76b9719d911017c592.cnodejs.org 的域名 cname 到某个地址。如果你能成功操作,则也说明你有域名的控制权。


回顾上述的获取方式那里,lets encrypt 用的是文件校验;腾讯云申请证书的话,貌似邮箱和dns校验都有;cdn 这边用的是文件校验。

之所以 cdn 这边可以一键开启,是因为 cdn 服务提供商具备权限,可以劫持你接入的域名的文件访问。当开启 https 功能时,cdn提供商通过 api 与证书颁发商进行沟通,自动化完成了文件校验的过程并获取证书。

上述三种校验方式里面,我个人认为第三种是最方便也最安全的。

邮箱验证这个,其实颁发商不一定会发邮件到 admin 里面去,我印象中可以选择什么 webmaster,sitemaster 等等一大堆域名前缀。

untitled2.png

如果你的域名可以被用户开放申请的话,这就显得很不安全。

文件校验这个,可以看看这篇文章。《尴尬!国内CA机构沃通错误颁发GitHub域名SSL证书 》,简而言之,就是有人通过操作 your-username.github.com 的域名,获取了 github.com 的根证书。用过 github pages 的朋友应该知道我在说什么。

上述申请方式里面,lets encrypt 的配置其实还是比较麻烦,而去腾讯云一次只有一年,每年需要记得更新。cdn服务商那种,就看你用不用cdn了。

就目前 https://cnodejs.org/ 的情况来说,主站这边我用的是 lets encrypt,配置了自动更新证书,所以证书永不过期。静态文件方面,用的是七牛提供的 ssl 域名,所以 ssl 证书不用我操心。

11 回复

感谢分享

来自酷炫的 CNodeMD

谢谢分享

腾讯云免费 ssl 证书一年后可以续期吗?

谢谢分享

@meteormatt 可以不停申请的

一直使用let’s encrypt, 免费版的用用就可以…

回到顶部