本文會介紹一些 Nginx 與 Libressl 一起使用實踐經驗。
本文所用軟件的版本
安裝
直接從源碼編譯LibreSSL,構建過程的輸出非常簡潔,源碼還附帶測試用例及提供并行構建支持(見附錄)。
# 用于構建及安裝 libressl 的選項 $ ./configure --prefix=/usr LDFLAGS=-lrt && make check && sudo make install
新安裝的 LibreSSL 可替代openssl以相同的方式運行,但要注意:正如 sabotage-linux 的 spencerjohn 和 Gentoo 的 Hanno Böck 所說的那樣,用libressl完全替代操作系統中的openssl會很麻煩。[3,4]
LibreSSL 會報告其版本為 LibreSSL 2.0, openssl命令的使用方法與openssl一樣:
代碼如下:$ which openssl
/usr/bin/openssl
$ openssl version
LibreSSL 2.0
$ openssl s_client -host www.openssl.org -port 443
CONNECTED(00000003)
depth=2 C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
0 s:/C=GB/OU=Domain Control Validated/CN=*.openssl.org
i:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Domain Validation CA - G2
1 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Domain Validation CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
... skip
-----END CERTIFICATE-----
subject=/C=GB/OU=Domain Control Validated/CN=*.openssl.org
issuer=/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Domain Validation CA - G2
---
No client certificate CA names sent
---
SSL handshake has read 4136 bytes and written 707 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : DHE-RSA-AES256-GCM-SHA384
TLS session ticket lifetime hint: 300 (seconds)
TLS session ticket:
確認了 libressl 能夠使用后,我便動手讓 nginx 來使用 libressl 。盡管在仍然使用 openssl 0.9.x 的舊系統中,通常我都會靜態構建 nginx+openssl 以使最新和最好的 tls 版本可用。第一次嘗試,只使用 ./configure --with-openssl=/path/to/libressl 就大錯特錯了,因為 nginx 已經完全與 openssl 的構建過程融合了:
可使用名為./config的腳本來替代./configure(容易解決) openssl 會收集在 .openssl/lib 下的 objects(.obj) 文件和其他文件來鏈接進二進制文件和庫文件,而 libressl 將這些文件分開存放在 crypto/.libs 和 ssl/.libs。新聞熱點
疑難解答