Nginx如何配置HTTPS詳解

来源:https://www.cnblogs.com/xunweidezui/archive/2023/03/07/17184305.html
-Advertisement-
Play Games

1. 什麼是HTTPS? HTTPS(全稱:Hypertext Transfer Protocol Secure),是以安全為目標的 HTTP 通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。HTTPS在HTTP的基礎下加入SSL,HTTPS的安全基礎是SSL,因此加密的詳細內 ...


1. 什麼是HTTPS?

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

1.1 HTTPS好處

  • 使用 HTTPS 協議可認證用戶和伺服器,確保數據發送到正確的客戶機和伺服器;
  • HTTPS 協議是由 SSL+HTTP構建的可進行加密傳輸、身份認證的網路協議,要比 HTTP安全,可防止數據在傳輸過程中被竊取、改變,確保數據的完整性。
  • HTTPS 是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本;

1.2 HTTPS缺點

  • 相同網路環境下,HTTPS 協議會使頁面的載入時間延長近 50%,增加10%到20%的耗電。此外,HTTPS 協議還會影響緩存,增加數據開銷和功耗
  • HTTPS 協議的安全是有範圍的,在黑客攻擊、拒絕服務攻擊和伺服器劫持等方面幾乎起不到什麼作用,最關鍵的是,SSL證書的信用鏈體系並不安全。特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行;
  • 成本增加。部署HTTPS後,因為HTTPS 協議的工作要增加額外的計算資源消耗,例如 SSL 協議加密演算法和 SSL交互次數將占用一定的計算資源和伺服器成本。在大規模用戶訪問應用的場景下,伺服器需要頻繁地做加密和解密操作,幾乎每一個位元組都需要做加解密,這就產生了伺服器成本。隨著雲計算技術的發展,數據中心部署的伺服器使用成本在規模增加後逐步下降,相對於用戶訪問的安全提升,其投入成本已經下降到可接受程度。

2. Nginx配置HTTPS

2.1 申請SSL證書

可以去申請阿裡雲免費CA證書 https://www.aliyun.com/product/cas
騰訊雲: https://cloud.tencent.com/product/ssl

2.2 申請騰訊雲免費證書

這裡已經提前申請下來了。直接在騰訊雲下載即可。
image

image

2.3 在伺服器端解壓

[root@haitang-nginx-test tls]# ls
nginx.malusspectabilis.top_nginx.zip
[root@haitang-nginx-test tls]# unzip nginx.malusspectabilis.top_nginx.zip 
Archive:  nginx.malusspectabilis.top_nginx.zip
   creating: nginx.malusspectabilis.top_nginx/
  inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top.csr  
  inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top_bundle.crt  
  inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top_bundle.pem  
  inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top.key  

2.4 配置HTTPS

具體可參考官方文檔;https://nginx.org/en/docs/http/ngx_http_ssl_module.html
配置https功能基於模塊ngx_http_ssl_module,編譯安裝需安裝這個模塊開啟ssl功能。yum安裝的nginx預設是開啟這個模塊ngx_http_ssl_module。

[root@haitang-nginx-test conf.d]# cat haitang-https.conf 
server{
   listen 443 ssl;  是否啟用ssl功能
   charset utf-8;   字元集utf-8
   server_name nginx.malusspectabilis.top;   功能變數名稱
   ssl_session_timeout 5m;  客戶端連接可復用ssl 緩存有效時間
   ssl_certificate /apps/nginx/conf.d/tls/nginx-malusspectabilis.top/nginx.malusspectabilis.top_bundle.pem;  當前虛擬主機的CA證書信息,一般是Crt文件
   ssl_certificate_key /apps/nginx/conf.d/tls/nginx-malusspectabilis.top/nginx.malusspectabilis.top.key;  當前虛擬主機的私鑰文件,一般為key文件
   ssl_session_cache shared:sslcache:20m;    配置ssl緩存
   ssl_protocols TLSv1.2 TLSv1.3;   支持的ssl協議版本,早期為ssl現在為tls;
   location / {
     root "/data/nginx/html/haitang/";
}
}
語法檢查正常。
[root@haitang-nginx-test conf.d]# nginx -t
nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /apps/nginx/conf/nginx.conf test is successful

2.5 準備訪問頁面

[root@haitang-nginx-test ~]# echo "海棠"  > /data/nginx/html/haitang/index.html 

2.6 載入Nginx並檢查埠是否啟動

[root@haitang-nginx-test ~]# nginx -s reload 
[root@haitang-nginx-test conf.d]# ss -tnlp | grep 443
LISTEN     0      128          *:443                      *:*                   users:(("nginx",pid=1802,fd=7),("nginx",pid=1801,fd=7),("nginx",pid=1800,fd=7),("nginx",pid=1799,fd=7),("nginx",pid=1798,fd=7),("nginx",pid=1761,fd=7))

2.7 配置本地hosts解析

sh-3.2# echo "xxxxxxx nginx.malusspectabilis.top" >> /etc/hosts

2.8 測試是否是https訪問

image
image

我們一直奔跑在進步的旅途
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • CF1149E Election Promises 這個題目最難下手的地方在於:可以對相鄰的城市進行任意修改,這導致難以確定後繼狀態。 但是還是可以使用 $\operatorname{SG}$ 函數! 下麵設 $f_u = \operatorname{mex}{f_v}$,這個可以直接拓撲排序求。 ...
  • 容器介面 BeanFactory 是ApplicationContext的父介面,所有ApplicationContext的實現都組合了BeanFactory。 BeanFactory才是Spring的核心容器。 從BeanFactory提供的方法來看,主要是從容器中獲取Bean。實際上控制反轉,依 ...
  • slava是作者參與的一個github開源項目,該項目的目標是用Go語言構建一個高性能K-V雲資料庫。 在本文中,作者將介紹Slava中記憶體淘汰策略的實現。Slava中目前實現了四種記憶體淘汰策略,分別是maxMemoryLruAllKeys,maxMemoryLfuAllKeys,maxMemory ...
  • 很難預測Python,C ++,Swift或任何其他編程語言是否會取代Java作為最受歡迎的語言,但在不久的將來不太可能.以下是一些原因: 受歡迎程度並建立的用法:Java已經存在了25年以上,並且擁有大型且已建立的用戶群.它被廣泛用於企業軟體開發,Android應用程式開發以及許多其他領域,這使得 ...
  • 前言 最近才發現MAUI Blazor Android存在輸入框軟鍵盤遮擋這個問題,搜索了一番,原來這是安卓webview一個由來已久的問題,還好有大佬提出瞭解決方案 AndroidBug5497Workaround,但是這是Java代碼,MAUI中需要做一些小的修改,修改一些方法名還有類的明確引用 ...
  • 《C#與.NET6 開發從入門到實踐》正式出版,歡迎廣大網友前來圍觀!! 遙想我的上一篇文章,已經過去將近3年,期間斷更的主要原因就是忙於書稿編寫,也擔心博客和書稿可能出現一些意外衝突。現在,書已經正式出版,我又開始更新博客了。 這是我第一次受出版社邀請寫書,沒有經驗,中間經歷了許多意外,導致預定為 ...
  • 背景 公司里的某負責保存用戶文檔的子系統有時會忽然cpu很高,過了大約5分鐘後又恢復正常水平。領導協調讓我幫看一下 (我心裡是: 不熟悉這個子系統裡面的代碼,我儘力哈😓) 其實確實是這樣的,如果熟悉出問題的系統的代碼,會對診斷問題起到很大的幫助,否則就需要更多的利用對底層的理解了。 分析 打聽後知 ...
  • 2. 配置添加 配置系統可以讀取到配置文件中的信息,那必然有某個地方可以將配置文件添加到配置系統中。之前的文章中講到 ASP.NET Core 入口文件中,builder(WebApplicationBuilder 對象) 中有一個 Configuration 屬性,這裡就是我們擴展添加額外的配置的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...