LNMP 1.5 使用 OpenSSL 1.1.1 开启 TLSv1.3 支持

8 Comments

以前使用 OpenSSL 1.1.1 dev draft-18 开启过 TLSv1.3,那时候浏览器都得手工开启才支持 TLSv1.3,所以基本上纯属自娱自乐。八月份 TLS 1.3 正式发布,九月份 OpenSSL 1.1.1 正式版……

Chrome 70+ 版本默认开启 TLS 1.3 Final 支持;Firefox 63+ 也默认支持……

博友 kn007 大佬折腾 TLS 1.3;可乐没气的猫也有个教程:使用 NGINX 与 OPENSSL- 1.1.1开启 TLSV1.3;比较相近的还有 24点半 的教程——用自定义 OpenSSL 版本编译 Nginx 以支持 TLS 1.3&Nginx 安装 Lua 扩展教程

当然了,我还是通过 lnmp1.5 nginx 升级脚本升级 nginx 来把 OpenSSL 1.1.1 编译进去。技术菜,只会这么干。

修改 lnmp1.5 脚本文件

首先是 \lnmp1.5\include\version.sh 文件,将 Openssl_Ver='openssl-1.0.2o' 修改为:Openssl_Ver='openssl-1.1.1a'

然后修改 \lnmp1.5\lnmp.conf 文件,将 Nginx_Modules_Options='' 改为:Nginx_Modules_Options='--with-openssl-opt=enable-weak-ssl-ciphers'注:enable-weak-ssl-ciphers 作用是让 OpenSSL 继续支持 3DES 等不安全 Cipher Suite,如果你打算继续支持 IE8,才需要加上这个选项;若不需要支持 XP IE8 访问可忽略此处修改

使用 lnmp1.5 脚本升级 nginx

注意,升级有风险,最好先快照备份。

进入 lnmp1.5 目录,执行命令:

./upgrade.sh nginx

然后输入需要升级的 nginx 版本号,如目前最新的 1.15.7。nginx 最新版本号可从官网获取:http://nginx.org

静待编译完成。

Checking ...
Program will display Nginx Version......
nginx version: nginx/1.15.7
======== upgrade nginx completed ======

执行 nginx -V 可查询详细配置信息:

nginx version: nginx/1.15.7
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
built with OpenSSL 1.1.1a 20 Nov 2018
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/root/lnmp1.5/src/openssl-1.1.1a --with-openssl-opt=enable-weak-ssl-ciphers

修改主机配置文件

ssl_protocols 加入 TLSv1.3 支持,如:ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

ssl_ciphers 参考配置(via:JerryQu):

ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD;

Cloudflare 推荐配置会报错,应该是因为我没有给 OpenSSL 打上 hakasenyang 大神 Patch 补丁所致,没有继续折腾,直接用以前用过的配置。

Cloudflare 目前推荐配置如下:

ssl_protocols               TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519:P-256:P-384:P-224:P-521;
ssl_ciphers '[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305|ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]:ECDHE+AES128:RSA+AES128:ECDHE+AES256:RSA+AES256:ECDHE+3DES:RSA+3DES';
ssl_prefer_server_ciphers on;

文件修改完,重启一下 nginx,然后就可以去浏览器访问验证一下。

TLSv1.3 是否开启成功验证

1、Chrome 70+ 版本打开网站,F12 打开开发者工具,「Security」可以看到 Connection - secure (strong TLS 1.3) 字样信息。

2、Firefox 63+ 版本打开网站,F12 打开开发者工具,「网络」,刷新页面,在「网络」资源列表下随便选中一个本站链接或者打开页面的链接,然后在右侧详细信息查看「安全性」即可看到连接协议版本。

3、在线检测:https://www.ssllabs.com,还能检测兼容性。

浏览器支持情况:https://caniuse.com/#feat=tls1-3

历史相关文章

老杨博客开始支持 TLS 1.3

TLS 1.3 目前只是 draft 版本,而支持 TLS 1.3 的 OpenSSL 1.1.1 的 draft-18 分支也只是开发者版本,所以,暂时最好不要用在生产环境。 其实前几天就折腾过 l...

除非注明,沙唐桔文章均为原创,本文地址 https://cyhour.com/977/,转载时必须以链接形式注明原始出处。
声明:我们不销售主机,选主机需合法使用。任何主机需定期备份,防止数据丢失。信息以实际为准,评测仅供参考不代表权威!

Sublime Text 批量删除文件空白行

不知道为啥,新版本的 WordPress 安装完成后生成的 wp-config.php 文件会被隔行插入一行空行,另外,发现从后台上传本地主题 zip 压缩包进行安装,这个主题的所有文件都会被隔行插入一行空行,这是 bug?我现在用 Sublime Text 3 (和谐版)编辑主题文件,于是找了一下 Sublime Text 删除空行的方法,…
浏览: 127 标签: 

Sublime Text 3 热键失效

今天折腾博客,发现 Sublime Text 3 快速选中多个地方热键(Ctrl+Alt+UP/DOWN)失效,原本以为是老问题:英特尔图形属性占用快捷键,看了一下,并没有。 找了一圈,试了几个工具,没找到是哪个程序快捷键冲突。然后尝试使用 Windows Hotkey Explorer 找找。MD,这货安装完,打开,屏幕噼里啪啦…
浏览: 161 标签:  ,  ,  , 
浏览: 126 标签:  ,  ,  , 

Comments:8

  1. 这方面我是能用就行了,自己搞还是不太懂,话说LNMP一键安装包内存使用率高吗?

    2018.11.30 22:28 # 回复
    1楼
  2. 宝塔面板折腾TLS1.3貌似不太容易,只会用现成的。

    2018.12.01 13:51 # 回复
    2楼
  3. 明天试一下?

    2018.12.07 23:30 # 回复
    3楼

发表留言

Vultr 送$100,搬瓦工年付最低$49,优惠码 BWH3HYATVBJW,更多推荐VPS信息