https 免费证书获取指引
发布于 9 个月前 作者 alsotang 2473 次浏览 来自 分享

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, 免费版的用用就可以…

感谢分享

回到顶部