让互联网更安全 —— 配置好自己的 HTTPS

2016-07-16 11:47:39 +08:00
 m31271n
  1. 做了小工具 —— docker-acme.sh ,简化了申请证书和更新证书的流程。希望它可以帮助正在使用 Let's Encrypt 证书的 V 友们免去一些痛苦。(每次证书到期,都挺折腾的,对吧?)

  2. 发现很多站的 HTTPS 不正确,再广播一个自己收集总结的 Nginx 的 HTTPS 配置

  3. 推荐工具: SSL Server Test

愿大家的 HTTPS 都能配置成功。匿了。

5743 次点击
所在节点    分享创造
44 条回复
yytsjq
2016-07-16 16:57:25 +08:00
@anjunecha 看介绍 HSTS 不是安全性更高吗,坑在哪呢?
m31271n
2016-07-16 16:59:22 +08:00
坑在 `includeSubdomains`,如果开了这个,所有的子域都会使用 HTTPS 。
m31271n
2016-07-16 16:59:35 +08:00
shiny
2016-07-16 17:19:08 +08:00
我之前也想把 acme.sh Docker 化,还有一个疑问是更新证书后如何通知 nginx reload configure?
dasenlin
2016-07-16 18:33:45 +08:00
@m31271n 请教楼主,看了楼主的配置文件, https 之间如何 301 呢,比如像 https://xxx.com 如何重定向到 https://www.xxx.com ,我有个开启 https 的站点无法这样跳转, http 之间倒是可以跳转
InFaNg
2016-07-16 19:37:33 +08:00
@m31271n rage4
m31271n
2016-07-16 19:40:38 +08:00
@InFaNg 这是啥意思。
m31271n
2016-07-16 19:46:30 +08:00
m31271n
2016-07-16 19:47:48 +08:00
@dasenlin HTTPS A 站 -> HTTPS B 站,两个都配置好证书就行了。
m31271n
2016-07-16 20:05:01 +08:00
@shiny 还一直以为 nginx 会自动重新读取证书而不用 reload ,看来我并没有考虑周全。
shiny
2016-07-16 20:30:55 +08:00
@m31271n 所以 ame.sh 有个 reloadcmd 参数,但跨容器就不好处理了。
m31271n
2016-07-16 20:38:08 +08:00
@shiny 不过,倒是想到了一个办法 —— 在 Nginx 容器中使用 inotifywait 这种文件状态检测工具来监测证书变化,证书一旦变化了就重载 Nginx 。(这个办法你觉得如何?)
wql
2016-07-16 20:44:25 +08:00
@m31271n 这个配置的标准名称,是 includeSubDomains 。注意, Domains 的 D 得大写(推荐配置)。
includeSubdomains 已经 deprecated 了
shiny
2016-07-16 20:47:21 +08:00
@m31271n 听上去可行,建议补充到您的这个项目里,那就解决了我面临的问题了 :D
m31271n
2016-07-16 20:56:27 +08:00
@shiny 这个是得在你的 Nginx 容器中实现的。
VmuTargh
2016-07-16 21:00:17 +08:00
HTTPS 怎么够,你还需要如下选项:

0.HSTS ,个人 HTTPS 站点必备,很多企业站也上线了 HSTS 。谷歌也搞了一个 HSTS Preload List ,任何被登记在这个 list 里面的站点会直接用 https 链接,避免 fallback 风险。当然这个列表 Firefox 、 Edge 也兹磁。

1.DNSSEC ,虽然我兔境内 DNSSEC 部署几乎等于没有,只有 CNNIC 一家。但有总比没有好, DNSSEC 本身就是用于对抗 DNS 污染的。不过需要用户操作系统还有 DNS 服务器兹磁。目前 DNSSEC 在大多数国别域名以及 gTLD 已经部署,各个根服务器组也已部署了 DNSSEC 兹磁。越来越多的域名注册商、 DNS 服务商开始提供 DNSSEC 的兹磁了。

2.HPKP ,这个东西用来防止伪造证书进行中间人攻击,通过 HPKP 头设置指定证书(可以包括域名证书、中间证书或者根 CA 证书)的 fingerprint ,来检验是否为此服务器使用证书,以避免中间人攻击。

3.DANE ,这个玩意其实和 HPKP 差不多,都是验证证书的机制,但是这个是基于 DNSSEC 的,实现不如 HPKP 优雅。但是适配范围更广。包括 TCP 、 UDP 等,不仅仅是 HTTPS 。所兹磁的 SSL 证书也不仅限定于正规 CA 签发的证书,也包括自签名证书。

4.Certificate Transperency ,这个被成为证书透明度的东西一直没搞懂是如何发挥作用的。但是据窝的观察,应该是判断证书是否可信的一个机制。当然, CT 依赖于 SCT 服务器……

另外暴力膜一下……

BroncoTc :
网络上的 https 和 http 相比,加了一个 s 有什么用? http+1s 比 http 安全吗?
我不是运维工作者,但我见得多了,我觉得我作为一个贴膜专家兼前国家二级赛艇运动员,有必要跟你们分享一点网络协议方面的人生经验。
一个网站的安全呀,不仅需要在应用层面添加必要的防护,更要从网络协议层面上考虑架构的合理性。
毫无疑问, HTTPS 正是这样一种既兼顾了应用层面的奋斗,又考虑了架构合理性的新理念,它代表了先进生产力的发展要求,代表了先进文化的发展方向,代表了最广大码农的根本利益。
所以,一个没有+1s 的网站,可能被运营商劫持,可能被黑客攻击,可能有很多种不幸的可能。但是当网站+1s 之后,一切烦恼就结束了。用上海知名气象学家徐嘉诰的话说就是,本来天气预报今天有黑客攻击, https 一来,万里无云。
不知道你想过没有,为什么程序员天天加班到没时间,但在续命的问题上却有莫大的热情呢?因为他们真切的体会到了+1s 的好处
http=( h ) a ( t ) oo young ( t ) oo sim ( p ) le ?
m31271n
2016-07-16 21:01:10 +08:00
@wql 嗯。已更改。
shiny
2016-07-16 21:29:33 +08:00
@m31271n 我指你可以在文档注明 reload 方式或者提供一些帮助或者脚本,这个项目在独立容器里当然无法处理。
m31271n
2016-07-16 23:03:20 +08:00
@shiny 了解。 Wink! Wink!
Him
2016-07-17 12:30:12 +08:00
小哥好厉害

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

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

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

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

© 2021 V2EX