標題:"Nginx 替換 OpenSSL 為 BoringSSL"
日期:"2016-08-16"
類別:
- "系統管理"
標籤: - "安卓"
- "Chrome"
- "谷歌"
- "Nginx"
- "OpenSSL"
首先科普一下,BoringSSL 是 Google 創建的 OpenSSL 分支,但使用 BoringSSL 的程式碼無法保證 API 或 ABI 的穩定性,所以 Google 會繼續向 OpenSSL 提交錯誤修正,並繼續資助 Core Infrastructure Initiative 和 OpenBSD 基金會。Google 使用了超過 70 個 OpenSSL 補丁,其中部分已被接受並合併到 OpenSSL 主庫,但大部分則沒有。隨著 Android、Chrome 和其他專案開始需要這些補丁的子集,事情變得越來越複雜,要確保所有補丁在不同程式庫中正常運作需要太多精力。因此,他們決定創建 OpenSSL 分支。
簡單總結一下 BoringSSL 的優缺點:優點:與 OpenSSL 兼容,修正了許多 OpenSSL 的錯誤,BoringSSL 也修正了 OpenSSL 無法改變的錯誤。缺點:BoringSSL 只為 TLS 和 HTTPS 而生,部分 OpenSSL 的開關默認是關閉的,如果是其他用途,建議還是使用 OpenSSL。
Nginx 替換 OpenSSL 為 BoringSSL 的方法與替換為 LibreSSL 的方法基本相似,手動編譯會比較麻煩。在編譯之前,需要進行程式碼的補丁修正,這裡提供一個已經實現好的編譯腳本供參考。
GitHub @ajhaydock https://github.com/ajhaydock/BoringNginx
實現腳本:
git clone https://github.com/limccn/BoringNginx.git
cd BoringNginx/1.10.0/
#執行編譯
./build-debian.sh
其他參考:https://imququ.com/post/optimize-ssl-ciphers-with-boringssl.html