国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > Nginx > 正文

如何讓Nginx快速支持TLS1.3協(xié)議詳解

2024-08-30 12:29:32
字體:
供稿:網(wǎng)友

前言

最近在看一些 TLS 協(xié)議 1.3 版本的相關(guān)知識,所以想分享一些信息,本文是第一篇,沒有太多的理論細節(jié),主要說下如何在 Nginx 上快速部署一個支持 TLS 1.3 協(xié)議版本的網(wǎng)站。

TLS 1.3 優(yōu)勢

TLS 1.3 相對于之前的版本,主要有兩大優(yōu)勢:

Enhanced security: 安全性增強
Improved speed:速度提升

幾個基本觀點需要牢記。

1)截止到現(xiàn)在 TLS 1.3 協(xié)議仍然處于草案階段,最新的 RFC 文檔是 draft 28,對于大型系統(tǒng)來說,目前并不建議部署,當(dāng)然對于個人網(wǎng)站來說,可以部署 TLS 1.3 版本 。

2)TLS 1.3 和 TLS 1.2 版本有很大的不同,從協(xié)議消息的角度來看,兩者是不兼容的,也正因為此,大型系統(tǒng)目前不建議采用 TLS 1.3 版本。

關(guān)于這兩個版本之間的差異,后續(xù)我會寫文章詳細描述。

3)Nginx 底層使用的密碼庫是 OpenSSL,也就是說是否支持 TLS 1.3 版本,取決于 OpenSSL 庫。

目前 Nginx 1.13 以上的版本支持 TLS 1.3 版本,而 OpenSSL 1.1.1 版本支持 TLS 1.3 版本,最新的 OpenSSL 1.1.1-pre5 支持 TLS 1.3 draft 26。

這篇文章運行環(huán)境如下:

  • Ubuntu 14.04.5 LTS 系統(tǒng)
  • gcc version 4.8.4
  • Nginx nginx1.13.5
  • openssl1.1.1

如果大家在具體安裝的時候,遇到各類問題,可能和軟件版本、系統(tǒng)環(huán)境有關(guān),需要查看手冊或者在線 Google。

安裝 OpenSSL

了解 TLS 1.3 版本,最好的工具就是 OpenSSL,所以第一步就是安裝 OpenSSL 密碼庫和命令行工具。

運行如下命令:

$ cd /root # 下載源代碼 $ wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1-pre1.tar.gz $ cd openssl-1.1.1-pre1$ grep TLS1_3_VERSION_DRAFT_TXT ./* -R# 輸出 draft 23 ./include/openssl/tls1.h:# define TLS1_3_VERSION_DRAFT_TXT "TLS 1.3 (draft 23)"$ ./config --prefix=/usr/local/openssl1.1.1 --openssldir=/usr/local/openssl1.1.1 --libdir=lib shared -Wl,-R,'$(LIBRPATH)' -Wl,--enable-new-dtags enable-ec_nistp_64_gcc_128 enable-tls1_3$ make $ make install
  • 在這個版本中,默認(rèn)已經(jīng)啟用 TLS 1.3 ,所以不加 enable-tls1_3 參數(shù)也可以
  • OpenSSL 命令行工具和各類包、證書文件都保存在 /usr/local/openssl1.1.1 目錄下。
  • 該版本對應(yīng)的 TLS 1.3 版本是 draft 23。

安裝完成后,可以使用命令行工具了解相關(guān) TLS 1.3 信息。

比如運行下列命令,了解該版本對應(yīng)的所有密碼套件:

$ ./usr/local/openssl1.1.1/bin/openssl ciphers -V tls1_3 | column -t0x13,0x02 - TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256)  Mac=AEAD0x13,0x03 - TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD0x13,0x01 - TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128)  Mac=AEAD

可以看出 TLS 1.3 版本支持的密碼套件進一步減少(增強了安全性)。

安裝 Nginx

Nginx 支持 TLS 1.3 版本,指定 OpenSSL 庫即可,運行命令如下:

$ cd /root $ wget http://nginx.org/download/nginx-1.13.5.tar.gz $ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz$ tar xvf pcre-8.41.tar.gz $ tar xvf nginx-1.13.5.tar.gz $ cd nginx-1.13.5$ ./configure / --prefix=/usr/local/nginx1.13.5.tls1.3 / --with-http_ssl_module / --with-pcre=../pcre-8.41 / --with-stream / --with-openssl=../openssl-1.1.1-pre1 / --with-openssl-opt="enable-tls1_3 enable-ec_nistp_64_gcc_128" --with-pcre$ make $ make install

—with-openssl-opt 參數(shù)主要是為了配置 OpenSSL

Nginx 配置 TLS 1.3 版本

$ cd /usr/local/nginx1.13.5.tls1.3$ vim conf/nginx.conf

nginx.conf 文件配置如下:

server { listen  443 ssl; server_name www.simplehttps.com; ssl_certificate  /etc/letsencrypt/live/simplehttps.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/simplehttps.com/privkey.pem; ssl_protocols  TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_protocols  TLSv1.1 TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers  TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-1 28-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256; location / {  root html;  index index.html index.htm; }}

關(guān)于如何申請證書,可以參考我原來的文章。

配置 TLS 1.3 版本很簡單,ssl_protocols 增加 TLSv1.3 即可。

運行如下命令啟動 Nginx:

$ ./sbin/nginx

測試 TLS 1.3

使用三種方式測試網(wǎng)站是否支持 TLS 1.3 版本。

1)OpenSSL 命令行

運行下列命令:

$ /usr/local/openssl1.1.1/bin/openssl s_client -connect www.simplehttps.com:443 -tls1_3  # 輸出New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384Server public key is 2048 bitSecure Renegotiation IS NOT supportedCompression: NONEExpansion: NONENo ALPN negotiatedEarly data was not sentSSL-Session: Protocol : TLSv1.3 Cipher : TLS_AES_256_GCM_SHA384

可見 TLSv1.3 已經(jīng)成功支持。

2)Chrome

目前主流的瀏覽器都支持 TLS 1.3 版本,具體見下圖:

nginx,tls1.3,nginx支持tls,tls

Chrome 從 62 版本默認(rèn)開啟 TLS 1.3 的支持,如果是 62 以下的版本,可以進行下列的配置。

(1)工具欄上打開 chrome://flags/

(2)啟用 TLS 1.3

nginx,tls1.3,nginx支持tls,tls

需要注意的是,如果服務(wù)器端支持的 draft 版本和瀏覽器支持的 draft 版本不一致,那么 HTTPS 網(wǎng)站將不能訪問。

(3)重新啟動瀏覽器

然后打開瀏覽器,對 https://www.simplehttps.com 進行測試。

nginx,tls1.3,nginx支持tls,tls

3)Firefox

Firefox 從 47  版本默認(rèn)開啟 TLS 1.3 的支持,如果是 47 以下的版本,可以進行下列的配置。

(1)工具欄上打開 about:config

(2)修改 security.tls.version.max 為 4

(3)重新啟動瀏覽器

然后打開瀏覽器,對 https://www.simplehttps.com 進行測試。

nginx,tls1.3,nginx支持tls,tls

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到服務(wù)器教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 长宁区| 比如县| 五大连池市| 晋中市| 将乐县| 拉萨市| 阳信县| 治县。| 永善县| 丹阳市| 固原市| 台江县| 巴彦淖尔市| 手机| 高要市| 海林市| 北海市| 定结县| 兴隆县| 偏关县| 泗洪县| 伊金霍洛旗| 宝兴县| 遵义市| 保靖县| 平和县| 无极县| 渭源县| 武宁县| 淳化县| 左云县| 乡城县| 两当县| 建宁县| 汕尾市| 济宁市| 偏关县| 鸡泽县| 日土县| 东方市| 遂川县|