亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

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

幾個(gè)基本觀點(diǎn)需要牢記。

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

2)TLS 1.3 和 TLS 1.2 版本有很大的不同,從協(xié)議消息的角度來(lái)看,兩者是不兼容的,也正因?yàn)榇耍笮拖到y(tǒng)目前不建議采用 TLS 1.3 版本。

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

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

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

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

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

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

安裝 OpenSSL

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

運(yùn)行如下命令:

$ 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 
  • 在這個(gè)版本中,默認(rèn)已經(jīng)啟用 TLS 1.3 ,所以不加 enable-tls1_3 參數(shù)也可以
  • OpenSSL 命令行工具和各類包、證書文件都保存在 /usr/local/openssl1.1.1 目錄下。
  • 該版本對(duì)應(yīng)的 TLS 1.3 版本是 draft 23。

說(shuō)明:如果編譯錯(cuò)誤,可以參考 issues 解決

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

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

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

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

安裝 Nginx

Nginx 支持 TLS 1.3 版本,指定 OpenSSL 庫(kù)即可,運(yùn)行命令如下:

$ 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)于如何申請(qǐng)證書,可以參考我原來(lái)的文章。

配置 TLS 1.3 版本很簡(jiǎn)單,ssl_protocols 增加 TLSv1.3 即可。

運(yùn)行如下命令啟動(dòng) Nginx:

$ ./sbin/nginx 

測(cè)試 TLS 1.3

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

1)OpenSSL 命令行

運(yùn)行下列命令:

$ /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_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supportedCompression: NONEExpansion: NONENo ALPN negotiatedEarly data was not sent
SSL-Session:    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384          

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

2)Chrome

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

讓Nginx快速支持TLS1.3協(xié)議

 

234392-be0533bc8c71405c.png

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

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

(2)啟用 TLS 1.3

讓Nginx快速支持TLS1.3協(xié)議

 

Chrome 啟用 TLS 1.3

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

(3)重新啟動(dòng)瀏覽器

然后打開(kāi)瀏覽器,對(duì) https://www.simplehttps.com 進(jìn)行測(cè)試。

讓Nginx快速支持TLS1.3協(xié)議

 

chrome測(cè)試

3)Firefox

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

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

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

(3)重新啟動(dòng)瀏覽器

然后打開(kāi)瀏覽器,對(duì) https://www.simplehttps.com 進(jìn)行測(cè)試。


作者:虞大膽的嘰嘰喳喳
鏈接:https://www.jianshu.com/p/aa3f7c4d3a10
來(lái)源:簡(jiǎn)書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

分享到:
標(biāo)簽:協(xié)議 TLS1
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定