OneinStack面板lnmp支持TLS1.3的教程。

发布于 / 技术宅 / 2 条评论

概述

TLS 1.3是IETF正在制定的TLS 新标准。TLS 自标准化至今已有近20年的时间,自1999年TLS 1.0标准颁布,到后来的TLS 1.1(2006年)和目前得到广泛使用的TLS 1.2(2008年),TLS是保障网络传输安全最重要的安全标准之一。然而,广泛的应用也使得TLS成为了攻击的“众矢之的”,这些攻击或利用TLS设计本身存在的不足(如幸运十三攻击[1]、三次握手攻击[2]、跨协议攻击 [3]等),或利用TLS所用密码原语本身的缺陷(如RC4加密 [4]、RSA-PKCS#1 v1.5加密 [5]等),或利用TLS实现库中的漏洞(如心脏出血攻击[6]等)。面对这一系列的攻击,一直以来我们采取的措施是“打补丁”,即针对新的攻击做新的修补。然而,由于TLS的应用规模过于庞大,不断地打补丁在如此大规模的实际应用中并不容易全面实施。除此之外,交互双方必须运行复杂的TLS握手协议才能开始传输信息,很多情况下我们希望在握手轮数和握手延迟方面可以有更多的选择。出于以上以及其他种种因素的考虑,IETF从2014年开始着手制定一个“clean”的TLS1.3。

现在,加入TLS1.3豪华午餐的需求越发的庞大了起来,网上教程也渐渐地多了起来,不过大多数教程都是使用包管理器安装的。

至于用lnmp一键安装包安装的玩家,则是被泼了几盆冷水。

好吧,既然作者拖更我们也只能自己动手了。

开工:

环境准备:

(可选)备份数据并且重装操作系统.(如果重装,在以下步骤中请勾选安装Mysql,PHP,Memcache,Redis.)

备用方案:

卸载nginx。

修改配置文件:

选择oneinstack目录,编辑version.txt

nginx_version=1.13.1

openssl_version=1.1.1_pre2 #已知更新至1.1.1_pre4,但是目前主流浏览器都没有支持到draft 26!

保存后正常编译安装。

修改nginx配置文件:

首先使用./vhost.sh生成一个虚机,注意需要支持SSL。

编辑/usr/local/nginx/conf/vhost/你的域名.conf

ssl_protocols 后面添加TLSv1.3

ssl_ciphers添加数个加密套件,已知有效的有:

  1. TLS13-CHACHA20-POLY1305-SHA256
  2. TLS13-AES-128-GCM-SHA256
  3. TLS13-AES-256-GCM-SHA384
  4. TLS13-AES-128-CCM-SHA256
  5. TLS13-AES-128-CCM-8-SHA256

保存并重启nginx.

浏览器支持

Google Chrome请在chrome://flags中设置启用TLS1.3

Firefox请在about:config中设置最大ssl协议。

效果图

转载原创文章请注明,转载自: 灵梦の墨迹 » OneinStack面板lnmp支持TLS1.3的教程。
  1. avatar

    博主您好,经过尝试,发现连几个问题:
    1.旧的openssl的测试版的1.1.1_pre2 已经移送到旧版本列表中。不过可以更改链接地址。
    2. openssl 1.1.1_pre2有一个源码函数错误,需要更改
    3.还有一个openssl x25519_x86_64的nginx编译错误问题,不知道是什么原因。

    所以,想请教博主是否有更改OneInStack中的nginx编译参数.
    谢谢!

    1. avatar
      @zach 清空oneinstack/src目录试试。 那里面源码有的时候很毒..