申请 Letsencrypt 的证书真简单,互联网距离全面 HTTPS 还有多远呢?

2016-10-31 23:33:34 +08:00
 revir

今晚给我的 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 呢?前端库不支持??

5192 次点击
所在节点    SSL
34 条回复
revir
2016-11-01 09:29:38 +08:00
官网的 certbot 在 aws 上运行不了 :(
wayslog
2016-11-01 09:33:35 +08:00
Let's encrypt:互联网界的 GC
chenset
2016-11-01 09:46:35 +08:00
请问如果 3 个月到期后续期成功了,续期成功后 ssl 的内容不是改变了吗? nginx 服务器需要重启吗?
neilp
2016-11-01 09:50:00 +08:00
@revir 代码多不意味着复杂.

有可能是有了更丰富的功能, 更完备的错误处理, 更多的调试信息, 更强更兼容的跨平台代码, 更健壮的代码.

如果仅仅一个 issue 功能, 一种认证方式, 不带任何错误处理,不带调试, 不顾健壮性的裸奔. 我也可以 200 行. 甚至更短.
但这样的 code 只能是 sample, 示例. 没有任何的实用价值, 更不能大规模应用.

Anyway, It'up to you.
revir
2016-11-01 10:01:02 +08:00
@neilp
那是, acme.sh 的代码复杂在可能使用的 shell, 代码更难懂,关于 http 和 debug 模块实现太太复杂了, python 上都是现成的库,清晰多了。而我用 acme-tiny.py 最主要的原因它兼容 AMI 这个小众的系统,这不说明它的跨平台更强吗?它还有自动化测试,官网还特地说明为了 ssl 证书的安全性,不要 root 运行,特别是还有 cron , root 更不安全了。
revir
2016-11-01 10:05:11 +08:00
@chenset
这我就不知道了 :(
oott123
2016-11-01 11:10:37 +08:00
不全面支持 https 的原因很多,比如国内某些运营商会把你的 DNS 劫持到自己的、只支持 http 的缓存服务器, https 根本连不上(
matsuz
2016-11-01 11:29:52 +08:00
@chenset 重新加载证书就行了,不需要重启
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 。
revir
2016-11-01 12:08:30 +08:00
@neilp Nice job!
我知道, acme.sh 的功能更强大,支持 http/dns 等多种方法验证,甚至还有 standalone , 还省略了前期自己生成 key, csr 等准备过程,很用心!

相比之下, acme_tiny 就做了最后一步 http 验证,但是当时于我是最需要的一步,它的教程刚好写了一个新手每一步需要怎样操作的完整教程,简单而又看得懂,说实话刚开始我看 certbot 和 certbot auto 那一堆教程真的是头大,还以为多复杂呢!

acme_tiny 感觉更原始但更简洁,而 acme.sh 更强大一些,覆盖的目标用户群肯定更广泛一些! anyway, 各取所需吧!
neilp
2016-11-01 12:43:32 +08:00
@revir 是啊 我看 certbot 也头大。 acme_tiny 的确是很好的参考实现。 但是太单薄。
revir
2016-11-02 10:32:04 +08:00
@lightening
你的博客很 Cool , 欢迎来 v2mm 交个朋友,有兴趣交换链接?
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 一步到位...
Davidcn
2016-11-12 17:04:22 +08:00
然而 Alpha 默默的不说话。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/316932

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX