1. 程式人生 > 實用技巧 >【Nginx】如何使用自籤CA配置HTTPS加密反向代理訪問?看了這篇我會了!!

【Nginx】如何使用自籤CA配置HTTPS加密反向代理訪問?看了這篇我會了!!

寫在前面

隨著網際網路的發展,很多公司和個人越來越重視網路的安全性,越來越多的公司採用HTTPS協議來代替了HTTP協議。為何說HTTPS協議比HTTP協議安全呢?小夥伴們自行百度吧!我就不說了。今天,我們就一起來聊聊如何使用自籤CA配置Nginx的HTTPS加密反向代理。咳咳,小夥伴們快上車。

如果這篇文章對你有所幫助,請文末留言,點個贊,給個在看和轉發,大家的支援是我持續創作的最大動力!

Nginx實現HTTPS

出於安全訪問考慮,採用的CA是本機Openssl自簽名生成的,因此無法通過網際網路工信Root CA驗證,所以會出現該網站不受信任或安全證書無效的提示,直接跳過,直接訪問即可!

HTTPS的原理和訪問過程

伺服器必要條件

  • 一個伺服器私鑰 KEY檔案
  • 一張與伺服器域名匹配的CA證書(公鑰,根據私鑰key生成)

訪問過程

(1)客戶端瀏覽器通過https協議訪問伺服器的443埠,並獲得伺服器的證書(公鑰);客戶端瀏覽器這時候會去找一些網際網路可信的RootCA(權威證書頒發機構)驗證當前獲取到的證書是否合法有效,PS:這些RootCA是隨作業系統一起預設安裝在了系統裡面的;

(2)如果RootCA驗證通過,表示該證書是可信的,並且若證書中標註的伺服器名稱與當前訪問的伺服器URL地址一致,就會直接使用該證書中包含的公鑰解密伺服器通過自己的KEY(私鑰)加密後傳輸過來的網頁內容,從而正常顯示頁面內容;

(3)如果RootCA驗證不通過,說明該證書是未獲得合法的RootCA簽名和授權,因此也就無法證明當前所訪問的伺服器的權威性,客戶端瀏覽器這時候就會顯示一個警告,提示使用者當前訪問的伺服器身份無法得到驗證,詢問使用者是否繼續瀏覽!(通常自簽名的CA證書就是這種情況)

這裡需要注意,驗證CA的有效性,只是證明當前伺服器的身份是否合法有效,是否具有公信力以及身份唯一性,防止其他人仿冒該網站;但並不會影響到網頁的加密功能,儘管CA證書無法得到權威證明,但是它所包含的公鑰和伺服器上用於加密頁面的私鑰依然是匹配的一對,所以伺服器用自己的私鑰加密的網頁內容,客戶端瀏覽器依然是可以用這張證書來解密,正常顯示網頁內容,所以當用戶點選“繼續瀏覽此網站(不推薦)”時,網頁就可以打開了;

自簽名CA證書生成

1.用Openssl隨機生成伺服器金鑰,和證書申請檔案CSR

2.自己給自己簽發證書

在伺服器命令列輸入如下命令辦法證書。

#opensslx509 -req -days 3650 -in moonfly.net.csr -signkeymoonfly.net.key -outmoonfly.net.crt 
  • -days 3650 證書的有效期,自己給自己頒發證書,想有多久有效期,就弄多久,我一下弄了10年的有效期;
  • -inmoonfly.net.csr指定CSR檔案
  • -signkeymoonfly.net.key指定伺服器的私鑰key檔案
  • -outmoonfly.net.crt 設定生成好的證書檔名

一條命令,自己給自己壓鋼印的身份證 moonfly.net.crt 就誕生了!

注:其實嚴格來講,這裡生成的只是一張RootCA,並不是嚴格意義上的伺服器證書ServerCA,真正的ServerCA是需要利用這張RootCA再給伺服器簽署辦法出來的證書才算;不過我們這裡只講如何實現網頁的SSL加密,所以就直接使用RootCA了,也是能正常實現加密功能的!

NGINX配置啟用HTTPS並配置加密反向代理

配置檔案修改完畢後,用nginx -t 測試下配置無誤,就reload一下nginx服務,檢查443埠是否在監聽:

配置完畢,https已經在工作了,現在可以通過https訪問網站了

重磅福利

關注「 冰河技術 」微信公眾號,後臺回覆 “設計模式” 關鍵字領取《深入淺出Java 23種設計模式》PDF文件。回覆“Java8”關鍵字領取《Java8新特性教程》PDF文件。回覆“限流”關鍵字獲取《億級流量下的分散式限流解決方案》PDF文件,三本PDF均是由冰河原創並整理的超硬核教程,面試必備!!

好了,今天就聊到這兒吧!別忘了點個贊,給個在看和轉發,讓更多的人看到,一起學習,一起進步!!

寫在最後

如果你覺得冰河寫的還不錯,請微信搜尋並關注「 冰河技術 」微信公眾號,跟冰河學習高併發、分散式、微服務、大資料、網際網路和雲原生技術,「 冰河技術 」微信公眾號更新了大量技術專題,每一篇技術文章乾貨滿滿!不少讀者已經通過閱讀「 冰河技術 」微信公眾號文章,吊打面試官,成功跳槽到大廠;也有不少讀者實現了技術上的飛躍,成為公司的技術骨幹!如果你也想像他們一樣提升自己的能力,實現技術能力的飛躍,進大廠,升職加薪,那就關注「 冰河技術 」微信公眾號吧,每天更新超硬核技術乾貨,讓你對如何提升技術能力不再迷茫!