让互联网更安全 —— 配置好自己的 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 都能配置成功。匿了。

5723 次点击
所在节点    分享创造
44 条回复
inroading
2016-07-16 12:17:39 +08:00
头像真吓人
ivmm
2016-07-16 12:29:12 +08:00
仅仅只有 https 不够吧。

还要 DNSSEC
anjunecha
2016-07-16 13:22:06 +08:00
看了一眼那个 https 配置感觉似乎有一些问题, spdy 不要用了,改成 http2 吧,另外 OCSP 装订那里,要做一个 ssl_stapling_verify ,以及你用的 8.8.8.8 的 resolver 对国内用户不太友好的,建议增加一个国内的 resolver
m31271n
2016-07-16 13:28:28 +08:00
@anjunecha 感谢你的回复。
m31271n
2016-07-16 13:30:38 +08:00
@ivmm 当然不够,对于普通站长,真的有能力有能力来部署 DNSSEC 吗?
lhbc
2016-07-16 13:31:15 +08:00
1. nginx 1.9 以后已经不支持 SPDY 了,只能 HTTP/2
2. ssl_ciphers 里, ECDHE-ECDSA 应该优先于 ECDHE-RSA 。当然,没有 ECC 证书 ECDSA 就是白搭。如果用了 1.11 的新特性 双证书,那 ECDSA 必须优先 RSA 。
3. Strict-Transport-Security includeSubdomains 这种大坑,不详细说清楚,让别人随便配,那真是无底坑了
DT27
2016-07-16 13:33:09 +08:00
只用 apache 。。。
ZE3kr
2016-07-16 13:50:20 +08:00
@m31271n 就只能等越来越多的 DNS 解析商去支持了,一般没有站长用自己服务器去做 DNS 解析的吧……
anjunecha
2016-07-16 13:55:50 +08:00
HSTS 是有点坑, lz 要谨慎配置,建议 lz 把 include Subdomains 这个配置字段去掉,如果子域需要的话每个子域单独配
m31271n
2016-07-16 13:58:35 +08:00
@anjunecha @lhbc
感谢你们提出的意见,已经更新。

1. spdy 更新为 http2
2. 添加 ssl_stapling_verify on;
3. resolver 新添国内 114 和 阿里 DNS
4. 为 HSTS 的大坑进行注释。

但是还有一个问题不解,考虑到安全和兼容性,现在 ssl_cipher 的推荐设置是什么?
m31271n
2016-07-16 14:03:12 +08:00
@anjunecha 确实是,已经去掉了。
m31271n
2016-07-16 14:03:58 +08:00
@ZE3kr 嗯。愿早日实现大一统。
McContax
2016-07-16 14:29:11 +08:00
我就问下,我区区一个博客站,真的有必要用 https 吗??遇到系统时间不对的还没法显示
ZE3kr
2016-07-16 14:32:06 +08:00
@m31271n 配置的话不同的 Nginx 和 OpenSSL 可能不同, Mozilla 有一套推荐,分为 Old 、 Intermediate 、 Modern ,看你需要的兼容性, Intermediate 就能够被评为 A+ 了。

https://mozilla.github.io/server-side-tls/ssl-config-generator/

nginx 1.10.0 | intermediate profile | OpenSSL 1.0.2g ( Ubuntu 16.04 就是这个)

ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';

或者 CloudFlare 的配置 https://github.com/cloudflare/sslconfig/blob/master/conf

ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
anjunecha
2016-07-16 14:33:37 +08:00
@m31271n ssl_cipher 这个不一定,看你的证书类型, nginx 版本,以及需要兼容的浏览器等等,你可以去 stackoverflow 上查一查
m31271n
2016-07-16 14:35:28 +08:00
@McContax 没必要。
m31271n
2016-07-16 14:53:08 +08:00
@ZE3kr @anjunecha 感谢,已经更新相关配置并添加了注释。
gzelvis
2016-07-16 15:26:25 +08:00
@anjunecha 能加你交个朋友吗? 我 QQ:2248227
greatghoul
2016-07-16 16:00:05 +08:00
小哥你这东西好。
m31271n
2016-07-16 16:23:18 +08:00

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

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

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

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

© 2021 V2EX