今晚给我的 V2MM-自由职业者社区 申请了 Let's encrypt 的 SSL 证书,原以为会很复杂的,审核不知道要多久。没想到全程特别简单,全软件操作,无需审核。他们的服务器可能频繁更新中,或者压力巨大,出错的概率很大,但是到底还是成功了。我写了一篇博文记录了一下这个过程。
Let's Encrypt 是由互联网安全研究小组( ISRG ,一个公益组织)提供的服务。主要赞助商包括电子前哨基金会, Mozilla 基金会, Akamai 以及思科。 2015 年 4 月 9 日, ISRG 与 Linux 基金会宣布合作。[3] 用以实现这一新的数字证书认证机构的协议被称为自动证书管理环境( ACME )。[4] GitHub 上有这一规范的草案,[4][5]且提案的一个版本已作为一个 Internet 草案发布。[6] Let's Encrypt 宣称这一过程将十分简单、自动化并且免费。[7] 2015 年 8 月 7 日,该服务更新其推出计划,预计将在 2015 年 9 月 7 日当周某时发布首个证书,随后向列入白名单的域名发行少量证书并逐渐扩大发行。[8] 2015 年 12 月 3 日,该服务进入公测阶段,正式面向公众。[9] 2016 年 3 月 8 日, ISRG 宣布,他们已经签发了第一百万张证书。[10] 2016 年 4 月 12 日,该项目正式离开 Beta 阶段。[11]
—— 维基百科
现在据说 Let's Encrypt 的证书已经支持所有的浏览器,连 xp 都支持,不知是否如此,能否请大家帮忙看看能否访问 v2mm 网站?这是否说明以后互联网都应该全面使用 HTTPS 了呢? 而国内这方面貌似还有点落后, 查看了一下,淘宝貌似全站支持,但京东却只有登录页面使用 HTTPS 。这样缺点是中间人还是可以劫持 session 盗取用户信息。那么是什么导致京东不全面使用 https 呢?前端库不支持??
2
wy315700 2016-10-31 23:55:46 +08:00
然而证书时间才 3 个月,如果遇到用户手机或者电脑时间不在有效期内就玩完了
|
3
justyy 2016-10-31 23:58:20 +08:00
我用的是 CloudFlare 免费的 Flexible SSL, 好处是: 一键开关,不需要配置,自动续
|
4
xfspace 2016-11-01 00:04:24 +08:00 via Android 1
一直都不远。远的是某些 CA 的职业道德和颁发证书的透明度。
|
5
matsuz 2016-11-01 00:24:08 +08:00 via Android
申请腾讯云的 TrustAsia 和阿里云的 Symentec 证书更简单
特别是 TrustAsia ,鼠标点一点就好了 而且这俩还是一年有效期 |
10
a86913179 2016-11-01 02:48:48 +08:00
很复杂?官网都有教程,直接运行 certbot 然后就有图形界面,输入域名和网站目录就可以了,然后添加一条 certbot renew 到 crontab
|
12
lightening 2016-11-01 03:28:26 +08:00
自动 renew 的 cronjob 做了吗?不然是大坑。
|
14
azh7138m 2016-11-01 07:32:18 +08:00 via Android
装个 HTTPS everywhere , jd 大部分页面都可以用 HTTPS 的
|
15
lzhd24 2016-11-01 07:40:09 +08:00 via Android
你可能需要这个网站:
https://certbot.eff.org/ |
17
princeofwales 2016-11-01 08:59:10 +08:00
还有一大堆放在虚拟主机上的网站不支持 SSL
|
18
arens 2016-11-01 09:10:36 +08:00
用的 V2 上别人安利的 Saki SSL ,不过是收费的
|
19
walkingway 2016-11-01 09:10:59 +08:00
@WildCat CloudFlare 的 CDN 上过,可惜就是国内太慢了
|
20
revir OP 然而,一楼的 acme.sh 太复杂了, acme-tiny.py 才 200 行代码,功能足够。现阶段 letsencrypt 的服务器不稳定,看懂客户端在干什么事,有助于我排错。
|
21
revir OP 官网的 certbot 在 aws 上运行不了 :(
|
22
wayslog 2016-11-01 09:33:35 +08:00 via Android
Let's encrypt:互联网界的 GC
|
23
chenset 2016-11-01 09:46:35 +08:00
请问如果 3 个月到期后续期成功了,续期成功后 ssl 的内容不是改变了吗? nginx 服务器需要重启吗?
|
24
neilp 2016-11-01 09:50:00 +08:00
@revir 代码多不意味着复杂.
有可能是有了更丰富的功能, 更完备的错误处理, 更多的调试信息, 更强更兼容的跨平台代码, 更健壮的代码. 如果仅仅一个 issue 功能, 一种认证方式, 不带任何错误处理,不带调试, 不顾健壮性的裸奔. 我也可以 200 行. 甚至更短. 但这样的 code 只能是 sample, 示例. 没有任何的实用价值, 更不能大规模应用. Anyway, It'up to you. |
25
revir OP @neilp
那是, acme.sh 的代码复杂在可能使用的 shell, 代码更难懂,关于 http 和 debug 模块实现太太复杂了, python 上都是现成的库,清晰多了。而我用 acme-tiny.py 最主要的原因它兼容 AMI 这个小众的系统,这不说明它的跨平台更强吗?它还有自动化测试,官网还特地说明为了 ssl 证书的安全性,不要 root 运行,特别是还有 cron , root 更不安全了。 |
27
oott123 2016-11-01 11:10:37 +08:00
不全面支持 https 的原因很多,比如国内某些运营商会把你的 DNS 劫持到自己的、只支持 http 的缓存服务器, https 根本连不上(
|
29
neilp 2016-11-01 11:34:32 +08:00
@revir 这有一个简短的中文说明, 可能需要 3 分钟. 请参考一下.
https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E 看看我们的完整跨平台自动测试列表: https://github.com/Neilpang/acme.sh#tested-os >> 官网还特地说明为了 ssl 证书的安全性,不要 root 运行,特别是还有 cron , root 更不安全了。 这完全就是聋子的耳朵. acme.sh 也不需要 root. 有些功能必须要 root 权限, 比如 80 , 443 端口等等。 其他功能均无需 root 。 |
30
revir OP @neilp Nice job!
我知道, acme.sh 的功能更强大,支持 http/dns 等多种方法验证,甚至还有 standalone , 还省略了前期自己生成 key, csr 等准备过程,很用心! 相比之下, acme_tiny 就做了最后一步 http 验证,但是当时于我是最需要的一步,它的教程刚好写了一个新手每一步需要怎样操作的完整教程,简单而又看得懂,说实话刚开始我看 certbot 和 certbot auto 那一堆教程真的是头大,还以为多复杂呢! acme_tiny 感觉更原始但更简洁,而 acme.sh 更强大一些,覆盖的目标用户群肯定更广泛一些! anyway, 各取所需吧! |
31
neilp 2016-11-01 12:43:32 +08:00 via iPhone
@revir 是啊 我看 certbot 也头大。 acme_tiny 的确是很好的参考实现。 但是太单薄。
|
32
revir OP @lightening
你的博客很 Cool , 欢迎来 v2mm 交个朋友,有兴趣交换链接? |
33
Havee 2016-11-02 16:20:40 +08:00
刚尝试 acme.sh ,太折腾了,用普通用户去跑,过程需要 root ,各种莫名其妙的错误。
用 root 去跑,-su: acme.sh: command not found... 各位写脚本的时候,能提示下究竟是哪个权限用户去跑么 最后,还是用 certbot ,按照 https://certbot.eff.org/#gentoo-nginx 一步到位... |
34
Davidcn 2016-11-12 17:04:22 +08:00
然而 Alpha 默默的不说话。。
|