溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》
  • 首頁 > 
  • 教程 > 
  • 服務(wù)器 > 
  • Web服務(wù)器在Nginx環(huán)境下怎么實現(xiàn)安全證書Https的配置

Web服務(wù)器在Nginx環(huán)境下怎么實現(xiàn)安全證書Https的配置

發(fā)布時間:2021-09-10 09:05:42 來源:億速云 閱讀:160 作者:chen 欄目:服務(wù)器

這篇文章主要介紹“Web服務(wù)器在Nginx環(huán)境下怎么實現(xiàn)安全證書Https的配置”,在日常操作中,相信很多人在Web服務(wù)器在Nginx環(huán)境下怎么實現(xiàn)安全證書Https的配置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Web服務(wù)器在Nginx環(huán)境下怎么實現(xiàn)安全證書Https的配置”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

1、先說說Nginx-HTTPS加密技術(shù)

超文本傳輸安全協(xié)議(HTTPS)是以安全為目標(biāo)的HTTP通道,簡單來說就是HTTP安全版。https由兩個部分組成:HTTP+SSL/TLS,在http基礎(chǔ)上加上了一層加密信息模塊,服務(wù)端和客戶端的信息插損胡都會通過TLS進(jìn)行加密,傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。

為了解決HTTP協(xié)議的這些缺陷,需要使用另一種協(xié)議:HTTPS。為了數(shù)據(jù)傳輸?shù)陌踩?,HTTPS在http的基礎(chǔ)上加了SSL協(xié)議,SSL依靠證書驗證身份,并為瀏覽器和服務(wù)器之間通信加密。

SSL證書是一種數(shù)字證書,使用Secure Socket  Layer協(xié)議在瀏覽器和web服務(wù)器之間建立一條安全通道,從而實現(xiàn)數(shù)據(jù)信息在客戶端和服務(wù)器之間的加密傳輸,保證雙方傳遞信息的安全性,不可被第三方竊聽,而且用戶可以通過服務(wù)器證書驗證所訪問網(wǎng)站是否真實可靠。

加密的HTTPS和HTTP的區(qū)別:超文本傳輸協(xié)議HTTP協(xié)議被用于在web瀏覽器和網(wǎng)站服務(wù)器之間傳遞信息,HTTP協(xié)議以明文方式發(fā)送內(nèi)容,不提供任何方式的加密數(shù)據(jù),如果攻擊者截取了web瀏覽器和網(wǎng)站服務(wù)器之間的傳輸報文,就可以直接讀取其中信息,因此,http協(xié)議不適合傳輸一些銘感信息。

HTTPS加密,解密,驗證完成過程如圖所示:

Web服務(wù)器在Nginx環(huán)境下怎么實現(xiàn)安全證書Https的配置

首先客戶端發(fā)送請求,服務(wù)端接受到請求之后并申請生成公私秘鑰,同時將公鑰證書發(fā)送給客戶端,客戶端收到之后并通過TLS進(jìn)行解析驗證,如果證書沒有問題就會在客戶端生成一個加密隨機值,將隨機值發(fā)送給服務(wù)端,服務(wù)端接收到之后,用自己的私鑰解密,從而得到這個隨機值,然后通過這個隨機值對內(nèi)容進(jìn)行對稱加密。服務(wù)端將用私鑰加密后的信息發(fā)送給客戶端,最后,客戶端用之前生成的私鑰來解密服務(wù)器端發(fā)過來的信息,獲取解密后的內(nèi)容。

1)客戶端向服務(wù)端發(fā)起HTTPS請求,用戶在瀏覽器輸入https網(wǎng)址,然后連接到Nginx  server的443端口2)服務(wù)端采用https協(xié)議有一套數(shù)字證書,該證書可以自行配置,也可以向證書管理組織去申請,該證書其本質(zhì)是公鑰和私鑰3)將公鑰傳送給客戶端,證書包含了很多信息,例如,證書的頒發(fā)機構(gòu),過期時間等等4)客戶端解析證書,由客戶端的TLS完成,首先會驗證公鑰是否有效,比如頒發(fā)的機構(gòu),過期時間等,如果發(fā)生異常,則會彈出警告信息,提示證書存在問題,如果證書沒有問題,就會隨機生成數(shù)值,然后用證書對該隨機數(shù)值進(jìn)行加密5)將證書加密后的隨機值傳送到服務(wù)器,讓服務(wù)器獲取該隨機值,后續(xù)客戶端和服務(wù)端可以通過該隨機值來進(jìn)行加密解密6)服務(wù)端用私鑰解密后,得到了客戶端傳過來的隨機值,然后把內(nèi)容通過該值進(jìn)行了對稱加密7)服務(wù)端將私鑰加密后的信息發(fā)給客戶端8)客戶端用之前生成的私鑰來解密服務(wù)端發(fā)送過來的信息,獲取解密后的內(nèi)容。

2、關(guān)于SSL證書

互聯(lián)網(wǎng)的安全通信,是建立在SSL/TLS協(xié)議之上,SSL/TLS協(xié)議的基本思路是采用公鑰加密法,也就是,客戶端先向服務(wù)器端索取公鑰,然后用公鑰加密信息,服務(wù)器收到密文后,用自己的私鑰解密。通過這種加解密機制,可以保障所有信息都是加密傳播,無法竊聽,同時,傳輸具有校驗機制,一旦信息被篡改,可以立刻發(fā)現(xiàn),最后,通過身份證書機制,可以防止身份被冒充。由此可知,SSL證書主要有兩個功能:加密和身份認(rèn)證。

目前市面上的SSL證書都是通過第三方SSL證書機構(gòu)頒發(fā)的,常見可靠的第三方  SSL證書頒發(fā)機構(gòu)有DigiCert、GeoTrust、GlobalSign、Comodo等。

根據(jù)不同使用環(huán)境,SSL證書可分為如下幾種:

企業(yè)級別:EV(Extended Validation)、OV(Organization Validation)? 個人級別:IV(Identity  Validation)、DV(Domain Validation)。

其中 EV、OV、IV  需要付費,企業(yè)用戶推薦使用EV或OV證書,個人用戶推薦使用IV證書,DV證書雖有免費的可用,但它是最低端的SSL證書。它不顯示單位名稱,也不能證明網(wǎng)站的真實身份,只能驗證域名所有權(quán),僅起到加密傳輸信息的作用,適合個人網(wǎng)站或非電商網(wǎng)站。

3、使用OpenSSL生成私鑰文件和CSR文件

Nginx配置HTTPS并不復(fù)雜,主要有兩個步驟:簽署第三方可信任的 SSL證書和配置 HTTPS,下面依次介紹。

要配置HTTPS需要用到一個私鑰文件(以.key結(jié)尾)和一個證書文件(以.crt結(jié)尾)  ,而證書文件是由第三方證書頒發(fā)機構(gòu)簽發(fā)的,要讓第三方證書頒發(fā)機構(gòu)簽發(fā)證書文件,還需要給他們提供一個證書簽署請求文件(以.csr結(jié)尾)。下面簡單介紹下私鑰文件和csr文件。

私鑰文件:以.key結(jié)尾的一個文件,由證書申請者生成,它是證書申請者的私鑰文件,和證書里面的公鑰配對使用,在 HTTPS  握手通訊過程中需要使用私鑰去解密客戶端發(fā)來的經(jīng)過證書公鑰加密的隨機數(shù)信息,它是HTTPS加密通訊過程非常重要的文件,在配置HTTPS的時候要用到。CSR文件:CSR全稱是Cerificate Signing Request,即證書簽署請求文件,此文件里面包含申請者的DN(Distinguished  Name,標(biāo)識名)和公鑰信息,此文件由證書申請者生成,同時需要提供給第三方證書頒發(fā)機構(gòu)。證書頒發(fā)機構(gòu)拿到CSR文件后,使用其根證書私鑰對證書進(jìn)行加密并生成CRT證書文件,CRT文件里面包含證書加密信息以及申請者的DN及公鑰信息,最后,第三方證書頒發(fā)機構(gòu)會將CRT文件發(fā)給證書申請者,這樣就完成了證書文件的申請過程。

在申請SSL證書之前,證書申請者需要先生成一個私鑰文件和一個CSR文件,可通過openssl命令來生成這兩個文件,操作如下:

[root@iZ23sl33esbZ ~]# openssl req -new -newkey rsa:2048 -sha256 -nodes -out  iivey.csr -keyout iivey.key -subj "/C=CN/ST=beijing/L=beijing/O=iivey  Inc./OU=Web Security/CN=iivey.com"

上面這個命令會生成一個CRS文件iivey.csr和私鑰文件iivey.key。其中,相關(guān)字段含義如下:

C字段:即Country,表示單位所在國家,為兩位數(shù)的國家縮寫,如CN表示中國? ST字段: State/Province,單位所在州或省? L字段:  Locality,單位所在城市/或縣區(qū)? O字段: Organization,此網(wǎng)站的單位名稱 OU字段: Organization  Unit,下屬部門名稱;也常常用于顯示其他證書相關(guān)信息,如證書類型,證書產(chǎn)品名稱或身份驗證類型或驗證內(nèi)容等? CN字段:Common  Name,網(wǎng)站的域名。

接著,將生成的CSR文件提供給CA機構(gòu),簽署成功后,CA機構(gòu)就會發(fā)給我們一個CRT證書文件,假定這個文件是iivey.crt,在獲得SSL證書文件后,就可以在Nginx配置文件里配置HTTPS了。

4、Nginx下配置SSL證書

要開啟HTTPS服務(wù),其實就是在Nginx上開啟一個443監(jiān)聽端口,下面是HTTPS服務(wù)在Nginx下的配置方式,這里僅列出了server段的配置:

server  {  listen 443;  server_name www.iivey.com;  index index.php index.html;  root /data/webhtdocs/iivey;  ssl                        on;  ssl_certificate                iivey.crt;  ssl_certificate_key            iivey.key;  ssl_prefer_server_ciphers  on;  ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;  ssl_ciphers                HIGH:!aNULL:!MD5;  add_header X-Frame-Options DENY;  add_header X-Content-Type-Options nosniff;  add_header X-Xss-Protection 1;  }

簡單介紹下上面每個配置選項的含義:

  • ssl on:表示啟用SSL功能。

  • ssl_certificate:用來指定CRT文件的路徑,可以是相對路徑,也可以是絕對路徑,本例是相對路徑,iivey.crt文件放在和nginx.conf同級目錄下。

  • ssl_certificate_key:用來指定秘鑰文件的路徑,可以是相對路徑,也可以是絕對路徑,本例是相對路徑,iivey.key文件放在和nginx.conf同級目錄下。

  • ssl_prefer_server_ciphers on:設(shè)置協(xié)商加密算法時,優(yōu)先使用我們服務(wù)端的加密套件,而不是客戶端瀏覽器的加密套件。

ssl_protocols:此指令用于啟動特定的加密協(xié)議,這里設(shè)置為“TLSv1 TLSv1.1  TLSv1.2”,TLSv1.1與TLSv1.2要確保openssl版本大于等于openssl1.0.1  ,SSLv3也可以使用,但是有不少被攻擊的漏洞,所以現(xiàn)在很少使用了。

  • ssl_ciphers:選擇加密套件和加密算法,不同的瀏覽器所支持的套件和順序可能會有不同。這里選擇默認(rèn)即可。

  • add_header X-Frame-Options DENY:這是個增強安全性的選項,表示減少點擊劫持。

  • add_header X-Content-Type-Options nosniff:同樣是增強安全性的選項,表示禁止服務(wù)器自動解析資源類型。

  • add_header X-Xss-Protection 1:同樣是增強安全性的選項,表示防止XSS攻擊。

5、驗證HTTPS功能

Nginx的https配置完成后,需要測試下配置是否正常,這里提供兩種方式,第一種方式是直接通過瀏覽器訪問https服務(wù),這里使用火狐瀏覽器進(jìn)行測試,如果https配置正常的話,應(yīng)該會直接打開頁面,而不會出現(xiàn)如下界面:

Web服務(wù)器在Nginx環(huán)境下怎么實現(xiàn)安全證書Https的配置

出現(xiàn)這個界面,說明https沒有配置成功,需要檢查https配置是否正確。而在打開https頁面后,可能還會出現(xiàn)一種情況,如下圖所示:

Web服務(wù)器在Nginx環(huán)境下怎么實現(xiàn)安全證書Https的配置

這個現(xiàn)象是能夠打開https界面,但是瀏覽器地址欄左邊的小鎖是灰色,并且有個黃色的感嘆號,這說明這個網(wǎng)站的頁面中可能引用了第三方網(wǎng)站的圖片、js、css等資源文件,https認(rèn)為頁面有引用第三方網(wǎng)站資源的情況是不安全的,所以才出現(xiàn)了警告提示。解決這個問題很簡單,將頁面上所有引用第三方網(wǎng)站的資源文件下載到本地,然后通過本地路徑進(jìn)行引用即可。

修改所有資源文件到本地服務(wù)器后,再次通過https方式進(jìn)行訪問,瀏覽器地址欄左邊的小鎖自動變成綠色,并且感嘆號消失,如下圖所示:

Web服務(wù)器在Nginx環(huán)境下怎么實現(xiàn)安全證書Https的配置

至此,nginx下配置https服務(wù)已經(jīng)正常運行。

在瀏覽器下可以查看證書信息(證書廠商、證書機構(gòu)、證書有效期等),點擊瀏覽器地址欄的綠鎖,選擇查看證書,即可查看證書詳細(xì)信息,如下圖所示:

Web服務(wù)器在Nginx環(huán)境下怎么實現(xiàn)安全證書Https的配置

到此,關(guān)于“Web服務(wù)器在Nginx環(huán)境下怎么實現(xiàn)安全證書Https的配置”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI