本文介绍以BoringSSL作为Nginx加密库的配置方法。
BoringSSL是由谷歌从Openssl中抽出来后独立发展的作品,是谷歌,Cloudflare等大牌的御用。
BoringSSL有优点也有缺点:优点是它原生提供加密算法等价组(具体我之后会写文章介绍)支持,并且对tls1.3-draft23支持较为不错,而缺点是不能在Nginx下启用tls1.3协议,且BoringSSL自身容易编译失败。
本文介绍使用BoringSSL替代Openssl作为Nginx加密库的方式。
<强> BoringSSL 强>
首先你需要把BoringSSL编译出来。建议编译所用主机配置2 g及以上内存,因为cmake相当消耗内存。以下步骤可能比较多,请按顺序一步步执行:
#建立一个目录,我们的工作都在这里进行 mkdir - p/home/nginx-installation,,cd/home/nginx-installation #安装编译所需依赖 # BoringSSL需要Golang支持 apt-get安装- y建设必要让cmake golang #把BoringSSL源码克隆下来 git克隆- dep 1 https://boringssl.googlesource.com/boringssl,,cd boringssl #编译开始 mkdir - p/home/nginx-installation boringssl/构建/home/nginx-installation/boringssl/penssl/lib/home/nginx-installation/boringssl .openssl/包括 ln科幻/home/nginx-installation/boringssl/include/openssl/home/nginx-installation/boringssl/.openssl/include/openssl 触摸/home/nginx-installation/boringssl .openssl/include/openssl/ssl.h cmake - b/home/nginx-installation/boringssl/构建- h/home/nginx-installation/boringssl 让- c/home/nginx-installation/boringssl/构建 cp/home/nginx-installation/boringssl/构建/加密/libcrypto。/home/nginx-installation/boringssl/构建/ssl/libssl。/home/nginx-installation/boringssl/.openssl/lib >之前以上步骤完成后,就先把BoringSSL编译完成了。接下来要用,使用openssl把它提供给Nginx使用。
<强> Nginx 强>
使用以下参数来编译Nginx:
#使用,使用openssl指定BoringSSL路径 #这里并没有变成”——with-boringssl” ./configure……——使用openssl=/home/nginx-installation/boringssl #在配置后,要先摸一下,才能继续 触摸/home/nginx-installation/boringssl .openssl/include/openssl/ssl.h 使 制作安装 >之前把Nginx编译出来后,查看参数你会看的到:
sudo nginx - v 由gcc 4.9.2 (Debian 4.9.2) 由OpenSSL 1.1.0 (conpatible: BoringSSL)与BoringSSL(运行) TLS SNI支持启用 >之前发现了吗?里面耀眼的BoringSSL字样。
<>强密码套件/强>
虽说把OpenSSL换成了BoringSSL,其实加密套件的写法还是差不多一样的。你可以这样写:
代码如下:
ssl_ciphers “ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-CHACHA20-POLY1305 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-CHACHA20-POLY1305 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-SHA256 ECDHE-RSA-AES128-SHA256的;
当然,如果你想用上BoringSSL的等价组特性的话,可以改成这样:
代码如下:
ssl_ciphers “[ECDHE-ECDSA-AES128-GCM-SHA256 | ECDHE-ECDSA-CHACHA20-POLY1305 | ECDHE-RSA-AES128-GCM-SHA256 | ECDHE-RSA-CHACHA20-POLY1305] ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-SHA256 ECDHE-RSA-AES128-SHA256的;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
Nginx启用BoringSSL的配置方法