本文介紹以 BoringSSL 作為 Nginx 加密庫的配置方法。
BoringSSL 是由谷歌從 Openssl 中抽出來后獨立發(fā)展的作品,是 Google、Cloudflare 等大牌的御用。
BoringSSL 有優(yōu)點也有缺點:優(yōu)點是它原生提供 加密算法等價組 (具體我之后會寫文章介紹)支持,并且對 tls1.3-draft23 支持較為不錯;而缺點是不能在 Nginx 下啟用 tls1.3 協(xié)議,且 BoringSSL 自身容易編譯失敗。
本文介紹使用 BoringSSL 替代 Openssl 作為 Nginx 加密庫的方式。
BoringSSL
首先你需要把 BoringSSL 編譯出來。建議編譯所用主機配置 2G 及以上內(nèi)存,因為 cmake 相當消耗內(nèi)存。以下步驟可能比較多,請按順序一步步執(zhí)行:
# 建立一個目錄,我們的工作都在這里進行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/includeln -sf /home/nginx-installation/boringssl/include/openssl /home/nginx-installation/boringssl/.openssl/include/openssltouch /home/nginx-installation/boringssl/.openssl/include/openssl/ssl.hcmake -B/home/nginx-installation/boringssl/build -H/home/nginx-installation/boringsslmake -C /home/nginx-installation/boringssl/buildcp /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ù) maketouch /home/nginx-installation/boringssl/.openssl/include/openssl/ssl.hmakemake install
把 Nginx 編譯出來后,查看參數(shù)你會看到:
sudo nginx -Vbuilt 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,其實加密套件的寫法還是差不多一樣的。你可以這樣寫:
當然,如果你想用上 BoringSSL 的 等價組 特性的話,可以改成這樣:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答