Nginx 啟用 BoringSSL的配置方法
本文介紹以 BoringSSL 作為 Nginx 加密庫(kù)的配置方法。
BoringSSL 是由谷歌從 Openssl 中抽出來(lái)后獨(dú)立發(fā)展的作品,是 Google、Cloudflare 等大牌的御用。
BoringSSL 有優(yōu)點(diǎn)也有缺點(diǎn):優(yōu)點(diǎn)是它原生提供 加密算法等價(jià)組 (具體我之后會(huì)寫文章介紹)支持,并且對(duì) tls1.3-draft23 支持較為不錯(cuò);而缺點(diǎn)是不能在 Nginx 下啟用 tls1.3 協(xié)議,且 BoringSSL 自身容易編譯失敗。
本文介紹使用 BoringSSL 替代 Openssl 作為 Nginx 加密庫(kù)的方式。
BoringSSL
首先你需要把 BoringSSL 編譯出來(lái)。建議編譯所用主機(jī)配置 2G 及以上內(nèi)存,因?yàn)?cmake 相當(dāng)消耗內(nèi)存。以下步驟可能比較多,請(qǐng)按順序一步步執(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 源碼克隆下來(lái) git clone --dep 1 https://boringssl.googlesource.com/boringssl && cd boringssl # 編譯開(kāi)始 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 編譯完成了。接下來(lái)要用 --with-openssl 把它提供給 Nginx 使用。
Nginx
使用以下參數(shù)來(lái)編譯 Nginx:
# 使用 --with-openssl 指定 BoringSSL 路徑 # 這里并沒(méi)有變成 "--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 編譯出來(lái)后,查看參數(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
雖說(shuō)把 OpenSSL 換成了 BoringSSL,其實(shí)加密套件的寫法還是差不多一樣的。你可以這樣寫:
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à)組 特性的話,可以改成這樣:
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';
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在Linux系統(tǒng)中將Redmine和SVN整合入Nginx的方法
這篇文章主要介紹了在Linux系統(tǒng)中將Redmine和SVN整合入Nginx的方法,示例基于CentOS系統(tǒng),并用到了Ruby腳本,需要的朋友可以參考下2015-06-06Nginx配置SSL證書部署HTTPS網(wǎng)站的方法(頒發(fā)證書)
這篇文章主要介紹了Nginx配置SSL證書部署HTTPS網(wǎng)站的方法(頒發(fā)證書),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Nginx+SpringBoot實(shí)現(xiàn)負(fù)載均衡的示例
這篇文章主要介紹了Nginx優(yōu)雅的實(shí)現(xiàn)負(fù)載均衡,幫助大家更好的理解和使用nginx,感興趣的朋友可以了解下2020-10-10nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解
這篇文章主要為大家介紹了nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11Linux部署Nginx實(shí)現(xiàn)反向代理的方法步驟
Nginx 是一種常用、輕型且快速的 Web 服務(wù)器, 它可以在 Linux 和 Windows 上運(yùn)行,并且可以配置為反向代理服務(wù)器,本文主要介紹了Linux部署Nginx實(shí)現(xiàn)反向代理的方法步驟,感興趣的可以了解一下2023-08-08