Nginx 教程 #3:SSL 設置

你們好!分享即關懷,咱們很樂意與你分享其餘的一些知識。咱們準備了一個 Nginx 指南,分爲三個系列。若是你已經知道一些 Nginx 知識或者想擴展你的經驗和認知,這個再合適不過了。html

咱們將告訴你 Nginx 的運做模式、蘊含的概念,怎樣經過調優 Nginx 來提升應用性能,或是如何設置它的啓動和運行。nginx

這個教程有三個部分:

  • 基本概念 —— 這部分須要去了解 Nginx 的一些指令和使用場景,繼承模型,以及 Nginx 如何選擇 server 塊,location 的順序。瀏覽器

  • 性能 —— 介紹改善 Nginx 速度的方法和技巧,咱們會在這裏談及 gzip 壓縮,緩存,buffer 和超時。緩存

  • SSL 安裝 —— 如何配置服務器使用 HTTPS安全

建立這個系列,咱們但願,一是做爲參考書,能夠經過快速查找到相關問題(好比 gzip 壓縮,SSL 等)的解決方式,也能夠直接通讀全文。爲了得到更好的學習效果,咱們建議你在本機安裝 Nginx 而且嘗試進行實踐。服務器

SSL 和 TLS

SSL(Socket Secure Layer 縮寫)是一種經過 HTTP 提供安全鏈接的協議。

SSL 1.0 由 Netscape 開發,但因爲嚴重的安全漏洞從未公開發布過。SSL 2.0 於 1995 年發佈,它存在一些問題,致使了最終的 SSL 3.0 在 1996 年發佈。

TLS(Transport Layer Security 縮寫)的第一個版本是做爲 SSL 3.0 的升級版而編寫的。以後 TLS 1.1 和 1.2 出來了。如今,就在不久以後,TLS 1.3 即將推出(這確實值得期待),而且已經被一些瀏覽器所支持。

從技術上講,SSL 和 TLS 是不一樣的(由於每一個協議都描述了協議的不一樣版本),但其中使用的許多名稱是能夠互換的。性能

基本 SSL/TLS 配置

爲了處理 HTTPS 流量,你須要具備 SSL/TLS 證書。你能夠經過使用 Let’s encrypt 以生成免費的證書。學習

我有幾張阿里雲幸運券分享給你,用券購買或者升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,立刻就要搶光了。阿里雲

當你擁有證書以後,你能夠經過如下的方式輕易切換至 HTTPS:spa

  • 開始監聽端口 443(當你輸入 https://sample.co 時瀏覽器將使用的默認端口)

  • 提供證書及其密鑰

server {
  listen 443 ssl default_server;
  listen [::]:443 ssl default_server;

  ssl_certificate /etc/nginx/ssl/netguru.crt;
  ssl_certificate_key /etc/nginx/ssl/netguru.key;
}

咱們也想經過調整配置實現:

  • 僅使用 TLS 協議。因爲衆所周知的漏洞,全部的 SSL 版本都將再也不使用

  • 使用預約義的安全的服務器密碼(相似於協議的狀況 - 那些日子只有少數密碼被認爲是安全的)

請牢記,上述設置老是在變化的。時不時從新更新是個好主意。

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:!MD5;
ssl_prefer_server_ciphers on;

server {
  listen 443 ssl default_server;
  listen [::]:443 ssl default_server;

  ssl_certificate /etc/nginx/ssl/netguru.crt;
  ssl_certificate_key /etc/nginx/ssl/netguru.key;
}

TLS 會話恢復

使用 HTTPS,在 TCP 之上須要增長 TLS 握手。這大大增長了此前實際數據傳輸的時間。假設你從華沙請求 /image.jpg,並接入到柏林最近的服務器:

相關文章
相關標籤/搜索