標籤:nginx配置 破解 傳輸 伺服器 密碼 cat ica stat rsa
HTTPS概述
HTTPS 可以認為是 HTTP + TLS。TLS 是傳輸層加密協議,它的前身是 SSL 協議,最早由netscape公司發布,後改名為 TLS。如果沒有特別說明,SSL 和 TLS 說的都是同一個協議。
通訊過程
1).瀏覽器將自己支援的一套加密規則發送給網站。2).網站從中選出一組密碼編譯演算法與HASH演算法,並將自己的身份資訊以認證的形式發回給瀏覽器。3).獲得網站認證之後瀏覽器要做以下工作:4) 驗證認證的合法性,如果認證受信任,則瀏覽器欄裡面會顯示一個小鎖頭,否則會給出認證不受信的提示。5) 如果認證受信任,或者是使用者接受了不受信的認證,瀏覽器會產生一串隨機數的密碼,並用認證中提供的公開金鑰加密。6) 使用約定好的HASH計算握手訊息,並使用產生的隨機數密碼對訊息進行加密,最後將之前產生的所有資訊發送給網站。 7).網站接收瀏覽器發來的資料之後要做以下的操作:8) 使用自己的私密金鑰將資訊解密取出密碼,使用密碼解密瀏覽器發來的握手訊息,並驗證HASH是否與瀏覽器發來的一致。9) 使用密碼加密一段握手訊息,發送給瀏覽器。10).瀏覽器解密並計算握手訊息的HASH,如果與服務端發來的HASH一致,此時握手過程結束,之後所有的通訊資料將由之前瀏覽器產生的隨機密碼並利用對稱式加密演算法進行加密。
關鍵概念:
CA (Certificate Authority):認證權威或者認證中心,主要用途是為使用者發放數位憑證。認證中心(CA)的功能有:認證發放、認證更新、認證撤銷和認證驗證。秘鑰協商:瀏覽器和伺服器每次建立會話時都使用非對稱金鑰交換演算法協商出對稱金鑰,使用這些對稱金鑰完成應用資料的加解密和驗證,整個會話過程中的密鑰只在記憶體中產生和儲存,而且每個會話的對稱金鑰都不相同(除非會話複用),中間者無法竊取。常見的金鑰交換演算法有 RSA,ECDHE,DH,DHE 等演算法。它們的特性如下:RSA:演算法實現簡單,誕生於 1977 年,曆史悠久,經過了長時間的破解測試,安全性高。缺點就是需要比較大的素數(目前常用的是 2048 位)來保證安全強度,很消耗 CPU 運算資源。RSA 是目前唯一一個既能用於金鑰交換又能用於認證簽名的演算法。DH:diffie-hellman 金鑰交換演算法,誕生時間比較早(1977 年),但是 1999 年才公開。缺點是比較消耗 CPU 效能。ECDHE:使用橢圓曲線(ECC)的 DH 演算法,優點是能用較小的素數(256 位)實現 RSA 相同的安全等級。缺點是演算法實現複雜,用於金鑰交換的曆史不長,沒有經過長時間的安全攻擊測試。ECDH:不支援 PFS,安全性低,同時無法實現 false start。DHE:不支援 ECC。非常消耗 CPU 資源。對稱式加密:使用秘鑰協商擷取到的對稱秘鑰加密通訊。數位憑證: a、身份授權。確保瀏覽器訪問的網站是經過 CA 驗證的可信任的網站。 b、分發公開金鑰。每個數位憑證都包含了註冊者產生的公開金鑰。在 SSL 握手時會通過 certificate 訊息傳輸給用戶端。
認證
根憑證:用於驗證CA機構的身份。網站認證:用於驗證網站身份。驗證過程為從憑證鏈結從下往上找到根憑證,然後通過根憑證 逐級向下驗證認證的真實性。
nginx配置
server { listen 80; server_name www.acme.com; location / { rewrite ^/(.*) https://www.acme.com/$1 permanent; }}server { listen 443 ssl; server_name www.acme.com; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_certificate /home/nginx/cer/acme.com.crt; ssl_certificate_key /home/nginx/cer/device.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 1440m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; access_log logs/www.acme.com.access.log main; error_log logs/www.acme.com.error.log debug; location / { proxy_pass http://192.168.198.132:8080; }}
使用指令碼
參考download目錄下:HTTPS-Turorial-Package.rar
關於HTTPS的使用簡介