使用 BoringSSL 优化 HTTPS 加密算法选择

文章参考:https://imququ.com/post/optimize-ssl-ciphers-with-boringssl.html

前言

很多做网站的朋友可能都会发现,一旦开启HTTPS之后,访问速度会变得很慢,因为多了一层加密的步骤。除了常规的使用 HTTP/2 之外,我们还能不能给https提速一把呢?答案是肯定的。各位都清楚SS程序中有两个加密算法比较引起我们的注意,一个是AES-256-CFB,还有个就是ChaCha20。ChaCha20在基于ARM构架的手机等设备上速度快,省电。所以我们就考虑把HTTPS网站的加密方式也换成ChaCha20来加快速度。其实不然,很多的设备CPU都带一种名为AES-NI的高端组件,他可以更快的处理AES的处理速度。在这些设备上的速度明显快过Chacha20。 @bobo 大佬曾经说过,不要盲目的追求Chacha20,带有AES-NI的设备反而是AES优势更大。

使用 BoringSSL 优化 HTTPS 加密算法选择

本篇文章来介绍下使用BoringSSL + Nginx 来使得https网站同时支持 AES-GCM 加密算法和 Chacha20-Poly305算法,并且自动检测设备是否支持AES-NI。

准备阶段

本篇文章以lnmp.org配置的一键LNMP包为例,首先进入源代码文件夹,找到nginx的源码包:

使用 BoringSSL 优化 HTTPS 加密算法选择

编译BoringSSL

然后我们下载BoringSSL(谷歌出品)并且编译:

编译Nginx

完成后我们进入Nginx准备编译:

我们准备下Nginx编译参数,使用

找到 configure 后面的 –,把他们复制下来。使用 BoringSSL 优化 HTTPS 加密算法选择

然后我们修改下,把 –with-openssl=../openssl-1.0.2k 改成 –with-openssl=../boringssl

然后把所有的其他的都一起粘贴在 ./configure 后面运行:

比如我这里就是
使用 BoringSSL 优化 HTTPS 加密算法选择

等预编译好了之后运行:

至此,Nginx就编译安装完成并且启用BoringSSL了~

修改虚拟主机配置文件

进入虚拟主机配置目录:

修改你想修改的的那个https站点文件,把其中的

改成

然后保存,重启Nginx就好啦~

下面是在移动端和电脑端加密方式的区别,可以看到已经成功应用最适合的加密方式了。

使用 BoringSSL 优化 HTTPS 加密算法选择

原创文章,作者:雨落无声,如若转载,请注明出处:https://www.zhujiboke.com/2017/04/443.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论列表(1条)

  • YouB 2017年4月7日 上午8:09

    👿 胸弟,你得代码高亮里面的标签关键字也出问题啦
    图片加个水印吧,防止被盗 :mrgreen: