新聞中心
服務(wù)器
本文介紹以 BoringSSL 作為 Nginx 加密庫的配置方法。
BoringSSL 是由谷歌從 Openssl 中抽出來后獨(dú)立發(fā)展的作品,是 Google、Cloudflare 等大牌的御用。
BoringSSL 有優(yōu)點(diǎn)也有缺點(diǎn):優(yōu)點(diǎn)是它原生提供 加密算法等價(jià)組 (具體我之后會(huì)寫文章介紹)支持,并且對 tls1.3-draft23 支持較為不錯(cuò);而缺點(diǎn)是不能在 Nginx 下啟用 tls1.3 協(xié)議,且 BoringSSL 自身容易編譯失敗。
本文介紹使用 BoringSSL 替代 Openssl 作為 Nginx 加密庫的方式。
BoringSSL
首先你需要把 BoringSSL 編譯出來。建議編譯所用主機(jī)配置 2G 及以上內(nèi)存,因?yàn)?cmake 相當(dāng)消耗內(nèi)存。以下步驟可能比較多,請按順序一步步執(zhí)行:
# 建立一個(gè)目錄,我們的工作都在這里進(jìn)行 mkdir -p /home/nginx-installation && cd /home/nginx-installation # 安裝編譯所需依賴 # BoringSSL 需要 Golang 支持 apt-get install -y build-essential make cmake golang # 把 BoringSSL 源碼克隆下來 git clone --dep 1 https://boringssl.googlesource.com/boringssl && cd boringssl # 編譯開始 mkdir -p /home/nginx-installation/boringssl/build /home/nginx-installation/boringssl/.openssl/lib /home/nginx-installation/boringssl/.openssl/include ln -sf /home/nginx-installation/boringssl/include/openssl /home/nginx-installation/boringssl/.openssl/include/openssl touch /home/nginx-installation/boringssl/.openssl/include/openssl/ssl.h cmake -B/home/nginx-installation/boringssl/build -H/home/nginx-installation/boringssl make -C /home/nginx-installation/boringssl/build cp /home/nginx-installation/boringssl/build/crypto/libcrypto.a /home/nginx-installation/boringssl/build/ssl/libssl.a /home/nginx-installation/boringssl/.openssl/lib
以上步驟完成后,就先把 BoringSSL 編譯完成了。接下來要用 --with-openssl 把它提供給 Nginx 使用。
Nginx
使用以下參數(shù)來編譯 Nginx:
# 使用 --with-openssl 指定 BoringSSL 路徑 # 這里并沒有變成 --with-boringssl ./configure ... --with-openssl=/home/nginx-installation/boringssl # 在 configure 后,要先 touch 一下,才能繼續(xù) make touch /home/nginx-installation/boringssl/.openssl/include/openssl/ssl.h make make install
把 Nginx 編譯出來后,查看參數(shù)你會(huì)看到:
sudo nginx -V built by gcc 4.9.2 (Debian 4.9.2) built with OpenSSL 1.1.0 (conpatible: BoringSSL) (running with BoringSSL) TLS SNI support enabled
發(fā)現(xiàn)了嗎?里面耀眼的 BoringSSL 字樣。
Cipher Suite
雖說把 OpenSSL 換成了 BoringSSL,其實(shí)加密套件的寫法還是差不多一樣的。你可以這樣寫:
復(fù)制代碼代碼如下:
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\';
當(dāng)然,如果你想用上 BoringSSL 的 等價(jià)組 特性的話,可以改成這樣:
復(fù)制代碼代碼如下:
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\';
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
本文題目:Nginx啟用BoringSSL的配置方法
瀏覽地址:http://www.dlmjj.cn/article/cgedgg.html