91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Nginx服務器中怎么使用LibreSSL

發布時間:2022-04-29 17:01:54 來源:億速云 閱讀:259 作者:iii 欄目:大數據

本篇內容介紹了“在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。


嘗試通過手工建立目錄層次(.openssl/lib)及根據 libressl 成功構建后出現的錯誤提示(見下面的錯誤信息)來復制文件以解決這些問題;在編譯 libressl 時,我看到一個類似可以通過使用 ldflags=-lrt 選項來解決問題的錯誤提示,但在嘗試編譯nginx并鏈接到已靜態編譯過的libressl庫時仍然無法修復這個問題(但我依然繼續):
 

復制代碼 代碼如下:

  ...
 
  objs/addon/nginx-upstream-fair/ngx_http_upstream_fair_module.o \
  objs/addon/src/ngx_http_headers_more_filter_module.o \
  objs/addon/src/ngx_http_headers_more_headers_out.o \
  objs/addon/src/ngx_http_headers_more_headers_in.o \
  objs/addon/src/ngx_http_headers_more_util.o \
  objs/addon/src/ngx_http_encrypted_session_module.o \
  objs/addon/src/ngx_http_encrypted_session_cipher.o \
  objs/ngx_modules.o \
  -wl,-e -lpthread -lcrypt -l/usr/lib -lm -llua5.1 -lpcre /data/builds/froggstack/nginx_modules/openssl/.openssl/lib/libssl.a /data/builds/froggstack/nginx_modules/openssl/.openssl/lib/libcrypto.a -ldl -lz
/data/builds/froggstack/nginx_modules/openssl/.openssl/lib/libcrypto.a(libcompat_la-getentropy_linux.o): in function `getentropy_fallback':
/data/builds/froggstack/nginx_modules/openssl/crypto/compat/getentropy_linux.c:324: undefined reference to `clock_gettime'
/data/builds/froggstack/nginx_modules/openssl/crypto/compat/getentropy_linux.c:395: undefined reference to `clock_gettime'
collect2: error: ld returned 1 exit status
make[1]: *** [objs/nginx] error 1
make[1]: leaving directory `/data/builds/froggstack/src_nginx/nginx-1.6.0'
make: *** [build] error 2

下一個嘗試是在安裝了 libressl 的前提下通過鏈接到 libressl 的動態庫來構建 nginx,最終成功了(完整的nginx ./configure 選項參數見附錄)。 運行 nginx-libressl -t 測試成功,并將 /usr/bin/nginx 替換成新的二進制可執行文件和運行 /etc/init.d/nginx restart,更新后的 nginx + libressl 上線了。任何配置文件和 nginx 的 ssl 配置都不需要修改,非常好!

測試

在各種 linux 和 android 的瀏覽器上測試都沒有發現問題;甚至在一臺已被遺忘的裝有2007年10月發布并已過時的附帶 openssl 0.9.8g 19 的 debian 5 上使用像 w3m 這樣的控制臺瀏覽器上瀏覽也沒有問題。

在 ssllabs.com 上測試的得分為 a+,成績與之前的配置一樣;在使用了 libressl 后,唯一給出的提示是加密算法 chacha20-poly1305 還處于實驗階段。

在Nginx服務器中怎么使用LibreSSL

在Nginx服務器中怎么使用LibreSSL

做了一個小小的性能測試,結果顯示沒有什么大問題;libressl 與平均水平相比慢了 4%。原因可能是 openssl 是靜態鏈接到 nginx 的,而 libressl 則是動態鏈接到 nginx 的,所以會產生更多的資源開銷。

在Nginx服務器中怎么使用LibreSSL

純數字的測試結果:

復制代碼 代碼如下:


| parallel requests | openssl-rps | libressl-rps
| 10                | 2341.75     | 2260.5
| 20                | 2459.75     | 2418.25
| 30                | 2472        | 2397
| 40                | 2485        | 2384.5
| 50                | 2445        | 2382.25
| 60                | 2453.25     | 2390.75
| 70                | 2426.25     | 2347.25
| 80                | 2346.5      | 2227.5
| 90                | 2325.5      | 2211
| 100               | 2297.75     | 2318.25

性能測試方式的一些說明可能在附錄中找到。

“在Nginx服務器中怎么使用LibreSSL”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肃南| 若尔盖县| 大足县| 双鸭山市| 额敏县| 家居| 宜兴市| 庆阳市| 大港区| 庄浪县| 云霄县| 高台县| 桐城市| 子长县| 龙泉市| 尼勒克县| 留坝县| 皋兰县| 三门峡市| 阿尔山市| 长治市| 乳山市| 郓城县| 且末县| 北京市| 云梦县| 利津县| 都昌县| 四子王旗| 瑞安市| 磴口县| 军事| 嘉黎县| 平潭县| 宁城县| 麻栗坡县| 茂名市| 东山县| 黄平县| 龙江县| 阿勒泰市|