日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Nginx設置HTTPS的方法步驟_nginx

作者:孫霸天 ? 更新時間: 2022-05-22 編程語言

背景

HTTP

超文本傳輸協議,是一個基于請求與響應,無狀態的,應用層的協議,?;赥CP/IP協議傳輸數據,互聯網上應用最為廣泛的一種網絡協議,所有的WWW文件都必須遵守這個標準。設計HTTP的初衷是為了提供一種發布和接收HTML頁面的方法。

優點

  • 支持客戶/服務器模式
  • 簡單快速:服務器當客戶端請求服務時,只需傳送請求方法和路徑
  • 靈活: HTTP 允許任何類型的數據對象的傳輸
  • 無連接:限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。
  • 無狀態:協議對于事務處理沒有記憶能力,服務器不知道客戶端是什么狀態。我們給服務器發送 HTTP 請求之后,服務器根據請求,會給我們發送數據過來,但是,發送完,不會記錄任何信息。HTTP 是一個無狀態協議,這意味著每個請求都是獨立的,Keep-Alive 沒能改變這個結果。

缺點

  • HTTP協議傳輸數據,都是通過明文的方式在互聯網上傳遞(如賬號、密碼、身份信息、瀏覽器記錄和交易記錄)
  • 任何人都可以輕松攔截、竊取或篡改數據,可能造成你的隱私數據泄露(中間人攻擊)

HTTPS

HTTPS (全稱:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全為目標的 HTTP 通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性 [1] 。HTTPS 在HTTP 的基礎下加入SSL,HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要 SSL。 HTTPS 存在不同于 HTTP 的默認端口及一個加密/身份驗證層(在 HTTP與 TCP 之間)。這個系統提供了身份驗證與加密通訊方法。它被廣泛用于萬維網上安全敏感的通訊,例如交易支付等方面 。

原理圖如下:

HTTPS

簡單來說,https是在http的基礎上添加了證書來驗證安全性,客戶端拿到了https的證書會向證書服務器去驗證證書的真偽,這樣就可避免中間人攻擊。在向證書服務器驗證證書后,客戶端就能拿到服務器的公鑰,同時客戶端也會生成這次自己的私鑰和公鑰,在請求傳輸的過程中會使用服務器公鑰將數據和客戶端公鑰進行加密,這種加密是非對稱加密的(很難破解),服務器擁有私鑰可以將數據進行解密。服務器返回數據時會使用客戶端的公鑰進行加密,這樣只有客戶端才能使用私鑰解密數據。這個過程是安全的。

配置過程

這里我使用的是nginx服務器配置域名htpps(配置SSL證書)

域名證書申請

我是使用騰訊云購買的域名:sunbt.ltd

國內服務器使用域名時需要備案,這里我默認都已經備案

進入騰訊的SSL證書管理頁面,申請對應的域名證書

image-20211230163033805

下載對應的證書,這里我選擇NGINX版本的

image-20211230163208182

編輯nginx.conf文件

將證書解壓放到服務器對應位置上

image-20211230163435472

添加如下內容:

server {
        #SSL 訪問端口號為 443
        listen 443 ssl; 
        #填寫綁定證書的域名
        server_name www.sunbt.ltd; 
        #證書文件名稱
        ssl_certificate /usr/local/nginx/conf/ssl/www.sunbt.ltd_bundle.crt; 
        #私鑰文件名稱
        ssl_certificate_key /usr/local/nginx/conf/ssl/www.sunbt.ltd.key; 
        ssl_session_timeout 5m;
        #請按照以下協議配置
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
        #請按照以下套件配置,配置加密套件,寫法遵循 openssl 標準。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;
        location @router {
            rewrite ^.*$ /index.html last;
         }
        location / {
                root /usr/local/nginx/html/web/blog; # /vue/dist/ 打包后的dist目錄
                try_files $uri $uri/ @router; # 指向下面的 @router否則會出現 404
                index index.html index.htm;
        }

    }

讓http請求跳轉到https

修改配置如下:

server {
    listen 80;
    #填寫綁定證書的域名
    server_name cloud.tencent.com; 
    #把http的域名請求轉成https
    return 301 https://$host$request_uri; 
}

原文鏈接:https://blog.csdn.net/qq_36213352/article/details/123620208

欄目分類
最近更新