酷玩网站 ·

使用 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 + Nginx 来使得https网站同时支持 AES-GCM 加密算法和 Chacha20-Poly305算法,并且自动检测设备是否支持AES-NI。

准备阶段

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

编译BoringSSL

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

编译Nginx

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

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

找到 configure 后面的 --,把他们复制下来。

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

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

比如我这里就是

等预编译好了之后运行:

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

修改虚拟主机配置文件

进入虚拟主机配置目录:

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

改成

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

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

参与评论

  • YouB

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

    10月前 (04-07)
    回复
    回复YouB