米饭粑 米饭粑
  • 首页
  • 好物推荐
    • 干货分享
    • 好物推荐
    • 免费资源
    • 非专业测评
  • 技术架构
    • Linux
    • HTTPS
    • Windows Server
  • 网站建设
    • 免费资源
    • 建站程序
    • 云建站
    • WordPress
  • 网络服务
    • CDN
    • DNS
    • HTTPS
  • 教程&更多
    • 更多教程
    • 资讯新闻
    • 琐琐碎碎
    • 关于米饭
    • 打赏米饭
  • 友情链接
  • 阿里云Ping
首页 › 技术架构 › HTTPS › Nginx 实现 TLS1.3 前瞻菜谱~

Nginx 实现 TLS1.3 前瞻菜谱~

妙正灰
4年前HTTPS
1,899 2 0

前言

随着苹果强制HTTPS机制、Chrome提示非HTTPS网站 “Not Security”的硬,以及 HTTP/2 更好的性能,HTTPS 更好的安全性的软,厂商和社区一番软硬皆施后,2016无疑是 HTTPS 和 HTTP/2 的普及年。而在 2017年 TLS1.3 协议也将要出炉了~

TLS1.3 不仅大幅提高安全性,还大幅度简化了握手过程,使第一次握手时只需要一个RTT,并在第二次访问时提供了 0-RTT 模式,提高了性能降低服务器压力。因此,TLS1.3 是一个不升白不升,升好处还很多的干货协议呀!

关于 TLS1.3 具体内容的废话我就不说了,大佬们写的肯定比我更好。

不过,TLS1.3 草稿来,草稿去已经很久,截止米饭发文已经到了第20稿了,所以本文介绍的内容依旧不能够用于生产环境哟!

下面我打算以做菜的形式风趣的介绍一下~

准备的食材

Ubuntu 16.04,这里用 Ubuntu 为例
Nginx 1.13,最新的 MainLine 版本已经支持 TLS1.3 协议了!
OpenSSL 1.1.1,完全兼容 OpenSSL 1.1.0 系列的API,只是添加了 TLS1.3 的支持
域名,嗯,你的域名
证书,域名对应的SSL证书和密钥

制作教程

安装编译软件(现场造个厨房)

apt install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

下载源文件(准备食材)

OpenSSL 1.1.1 draft-18

虽然 TLS1.3 的菜谱已经被各大厨共同探讨到第20稿子了,但是盛菜的浏览器普遍都只支持第18稿,所以我们也以 Draft18 为服务端的协议。

cd /opt/
git clone -b tls1.3-draft-18 --single-branch https://github.com/openssl/openssl.git openssl-tls1.3

Nginx 1.13

Nginx 1.13 开始正式支持 TLS1.3 协议,虽然 1.11 最后几个版本也隐约有支持,但是肯定不稳定,容易糊锅。

cd /opt/
wget http://nginx.org/download/nginx-1.13.1.tar.gz

编译(开做)

cd /opt/nginx-1.13.1/
./configure --prefix=/usr/local/nginx --with-openssl=/opt/openssl  --with-openssl-opt=enable-tls1_3 --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module
make && make install

--with-openssl= 后面跟 OpenSSL 的目录,但是默认是不编译 TLS1.3 的内容的,所以后面要加上 -with-openssl-opt=enable-tls1_3 开启对 TLS1.3 协议的编译。

设置(摆盘)

修改 /usr/local/nginx/conf/nginx.conf 文件,添加虚拟主机文件,这里以我的测试文件为例:

server {
  listen 443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/www.mf8.biz.crt;
  ssl_certificate_key /usr/local/nginx/conf/www.mf8.biz.key;
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-256-GCM-SHA384:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name www.mf8.biz mf8.biz;
  access_log off;
  index index.html index.htm index.php;

          location / {
            root   html;
            index  index.html index.htm;
        }

  }

具体步骤,

一、在 ssl_protocols 中添加 TLSv1.3

二、修改 ssl_ciphers,添加 TLS1.3 支持的协议,ssl_ciphers TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-256-GCM-SHA384:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

三、其他的大家参考自己原来的就行。

启动(上桌)

还是要说一下,TLS1.3 的菜谱已经依旧在商讨当中,没有最终定稿,所以不要用在生产环境中,所以我这里也不做 Nginx 的具体生产步骤了,直接开始尝鲜 TLS1.3。

先检查一下 nginx.conf 文件是否正确,如果有错就找到对应行并修改。

/usr/local/nginx/sbin/nginx -t

启动 Nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

菜品图

Win10 + FireFox 54 中的效果

Nginx 实现 TLS1.3 前瞻菜谱~-米饭粑

macOS10.12 + Chrome 58 种的效果

Nginx 实现 TLS1.3 前瞻菜谱~-米饭粑

如果上述步骤有一步发生纰漏,就会专业,协议对不上

Nginx 实现 TLS1.3 前瞻菜谱~-米饭粑

HTTPS Nginx TLS1.3
0
或许是最详细的学生购买笔记本购买参考
上一篇
利用 Dism 自己转制 Windows 10 Enterprise G
下一篇
评论 (2)
再想想
  • Love4Taylor

    说起来 今天突发奇想 准备撸 Lua 模块 结果 Nginx 1.13.1 下各种出错 就贼惨

    4年前
    • 妙正灰

      @Love4Taylor: 撸 Lua 还是直接用 OpenResty 来的省心

      4年前
标签
Appnode Brotli CDN CentOS CentOS8 Debian DNS ECC ECS Ghost HTTP2 HTTPS IIS IPV6 Linux LiteSpeed MariaDB MySQL Nginx OLS OpenLiteSpeed OpenResty OSS PageSpeed PHP PHP7 QUIC Redis RHEL RHEL8 SSL TokuDB Ubuntu Windows Server 2016 Wordpress 云服务器 升级 域名 对象存储 微软 数据库 百度 笔记本 阿里云 阿里云ACP
文章归档
关注米饭粑微信公众号
2
相关文章
在 RHEL8 CentOS8 下构建 LNMP 环境教程
在 RHEL8 和 CentOS8 上安装 Nginx
使用 LiteSpeed 轻松为网站开启 HTTP/3 实践
Nginx 上部署 TLS1.3、Brotli、ECC双证书实践
关于

稻粢穱麦,挐黄梁些,折腾云计算的经验分享和总结。

菜单
首页 教程 好物 关于 链接 打赏
内页链接
米饭粑 米范导航
Copyright © 2011-2021 米饭粑. Designed by nicetheme. 浙ICP备15006212号-1
  • 首页
  • 教程
  • 好物
  • 关于
  • 链接
  • 打赏
热门搜索
  • 402
  • 113
  • 546
  • 548
  • 460
妙正灰
文科屌丝伪IT男一枚.
337 文章
385 评论
367 喜欢
  • 0
  • 2
  • Top