国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Nginx配置https及證書

這篇具有很好參考價值的文章主要介紹了Nginx配置https及證書。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 證書

之前我們使用的是自簽名的SSL證書,對于瀏覽器來說是無效的。使用權威機構頒發(fā)的SSL證書瀏覽器才會認為是有效的,這里給大家推薦兩種申請免費SSL證書的方法,一種是從阿里云申請,https://common-buy.aliyun.com/?spm=5176.2020520163.0.0.e8f856a74ReRXh&commodityCode=cas 鏈接地址
Nginx配置https及證書

另一種是從FreeSSL申請。
使用acme.sh自動申請證書
acme.sh腳本實現(xiàn)了acme協(xié)議, 可以從letsencrypt生成免費的證書。一般我們申請的證書有效期都是1年,過期就要重新申請了,使用acme.sh腳本可以實現(xiàn)到期自動申請,再也不用擔心證書過期了!
Nginx配置https及證書

騰訊云申請
Nginx配置https及證書
Nginx配置https及證書
Nginx配置https及證書

2 nginx配置

server {
	 listen 80;
	 server_name www.domain.com ;
 	 rewrite ^(.*)$ https://$server_name$1 permanent;
 	 #rewrite ^(.*)$ https://$host$1; 
 	 # return 301 $scheme://$server_name$request_uri;
 	 #rewrite ^(.*)$ https://www.xxx.com$1;
	}

server {
        listen 443 ssl  http2;
        server_name www.domain.com;
        ssl_certificate /usr/local/key/1_www.domain.com_bundle.crt;  
        ssl_certificate_key /usr/local/key/2_www.domain.com.key;  
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; 
        ssl_prefer_server_ciphers on;
        location / {
            root   html; 
            index  index.html index.htm;
        }
    }
 
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
                expires      30d;
  }

location ~ .*\.(js|css)?$ {
                expires      12h;
 }   

注意
Nginx 1.15.0以上版本請使用listen 443 ssl代替listen 443和ssl on

–with-http_ssl_module

3 參數(shù)

SSL常用命令
1)ssl
該指令用來指定服務器開啟HTTPS,可以使用 listen 443 ssl,后面這種方式更通用些
配置格式:
server{
listen 443 ssl;
}

2)ssl_certificate
為當前這個虛擬主機指定一個帶有PEM格式證書的證書

3) ssl_certificate_key
該指令用來指定PEM secret key文件的路徑

4) ssl_session_cache
該指令用來配置用于SSL會話的緩存

5) off
禁用會話緩存,客戶端不得重復使用會話

6) none
禁止使用會話緩存,客戶端可以重復使用,但是并沒有在緩存中存儲會話參數(shù)

7) builtin
內(nèi)置OpenSSL緩存,僅在一個工作進程中使用

8)shared
所有工作進程之間共享緩存,緩存的相關信息用name和size來指定

9)ssl_session_timeout
開啟SSL會話功能后,設置客戶端能夠反復使用儲存在緩存中的會話參數(shù)時間

  1. ssl_ciphers
    指出允許的密碼,密碼指定為OpenSSL支持的格式(可以使用openssl ciphers查看openssl支持的格式)

ssl_prefer_server_ciphers
該指令指定是否服務器密碼優(yōu)先客戶端密碼

4 自定義證書

mkdir /root/cert
cd /root/cert
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Nginx配置https及證書
Nginx配置https及證書
Nginx配置https及證書

Nginx配置https及證書

5 nginx配置參數(shù)詳解

 server{
        listen  443 ssl;                                      
        server_name ab.text.com ;              #指定域名(也可以是ip)多個域名用空格隔開

       ssl_certificate /opt/app/nginx/conf/cert/ngxdefault.crt;    #添加server.pem訪問路勁(第一個證書文件路勁)        
        ssl_certificate_key /opt/app/nginx/conf/cert/ngxdefault.key;    #添加server.key訪問路勁(第二個證書文件訪問路勁)

        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";       #是一種加密算法
        ssl_protocols TLSv1.1 TLSv1.2;  #啟用指定協(xié)議(使用哪種加密協(xié)議支持ssl版本)
        ssl_prefer_server_ciphers on;  #指定在使用SSLv3和TLS協(xié)議時,服務器密碼應優(yōu)先于客戶端密碼。)
        ssl_session_cache shared:SSL:10m;  #1m大約可以存儲4000個TLS握手,當某個https連接在規(guī)定時間重連時,可以通過session_cahce重用TLS秘鑰,也就是client只要發(fā)起一次http請求就可以再次進行連接。根據(jù)TLS通訊過程,如果你的https開啟了session_cache,在第二步,server獲取到client請求就會去讀取session_cache文件,如果存在client的key就直接復用,進行數(shù)據(jù)傳輸。
                            設置存儲會話參數(shù)的高速緩存的類型和大小。緩存可以是以下任何一種類型:
                            off
                            嚴禁使用會話緩存:nginx明確告訴客戶端會話可能不會被重用。
                            none
                            會話緩存的使用被輕輕地禁止:nginx告訴客戶端會話可能被重用,但實際上不會將會話參數(shù)存儲在緩存中。


                            builtin
                            建立在OpenSSL中的緩存; 僅由一個工作進程使用。緩存大小在會話中指定。如果沒有給出大小,則等于20480個會話。內(nèi)置緩存的使用可能導致內(nèi)存碎片。
                            shared
                            所有工作進程之間共享的緩存。緩存大小以字節(jié)為單位指定; 一兆字節(jié)可以存儲大約4000個會話。每個共享緩存都應該有一個任意的名字。具有相同名稱的緩存可以在多個虛擬服務器中使用。
                            兩種緩存類型都可以同時使用,例如:
                            ssl_session_cache builtin:1000 shared:SSL:10m;
                            注意:但只使用沒有內(nèi)置緩存的共享緩存應該更有效率。
                            
        ssi on;    #服務器嵌套,主要是實現(xiàn)網(wǎng)站的內(nèi)容更新,時間和日期的動態(tài)顯示,以及執(zhí)行shell和CGI腳本程序等復雜的功能。
        ssi_silent_errors on; #默認是off,開啟后在處理SSI文件出錯時不輸出錯誤提示:”[an error occurred while processing the directive] ”
        #ssi_types #默認是支持ssi_types text/html 如果需要shtml支持,則需要設置:ssi_types text/shtml
        #適用于http,server,location等模塊 
   }

6 https工作流程

Nginx配置https及證書

7 https協(xié)議

HTTP協(xié)議是由HTTP協(xié)議和SSL/TLS協(xié)議共同組建提供加密傳輸及身份驗證的網(wǎng)絡協(xié)議,信息傳輸是通過HTTP協(xié)議來完成,身份加密及驗證是通過TLS協(xié)議來完成,其中對稱加密及非對稱加密都是屬于TLS協(xié)議的算法。
目前主流TLS協(xié)議版本是TLS1.2,主推版本是TLS1.3,反正是TLS1.1,TLS1.2,TLS1.3共存。
TLS 1.3 是時隔九年對 TLS 1.2 等之前版本的新升級,也是迄今為止改動最大的一次。針對目前已知的安全威脅,IETF 正在制定 TLS 1.3 的新標準,使其有望成為有史以來最安全,但也最復雜的 TLS 協(xié)議。
簡單來說TLS1.3無論在安全加密,數(shù)據(jù)傳輸方面完虐TLS1.2,不過現(xiàn)在還處于草案階段,雖然被很多瀏覽器支持,但是不建議部署在生產(chǎn)服務上。

TLS的通訊過程
Nginx配置https及證書

8 實現(xiàn)https的算法種類

什么是對稱加密?
    client 通過算法F根據(jù)秘鑰A對數(shù)據(jù)進行加密,那么server端就可以通過算法F根據(jù)秘鑰A對數(shù)據(jù)進行解密,整個加密解密過程都是使用一個私鑰,所以被稱為對稱加密。
    根據(jù)算法規(guī)則,client跟server都是使用通過一個秘鑰進行解密加密,如果秘鑰被截取很容易造成數(shù)據(jù)泄露。
    同時如果服務端每次都針對不同的客戶端存儲一個私聊,當客戶端數(shù)量龐大時,光服務器的存儲的私鑰都能造成server成本劇增。

什么是非對稱加密?
    client向server請求公鑰,對數(shù)據(jù)進行加密,在將加密的數(shù)據(jù)發(fā)送給server,然后server通過秘鑰進行解密,得到原始數(shù)據(jù),但是是加密是通過公鑰,解密是通過私鑰,整個加密解密過程,秘鑰是不同的,熟稱非對稱加密。
    在整個非對稱加密過程中,公鑰及私鑰都是server端的,基本保證數(shù)據(jù)由client傳輸?shù)絪erver是安全的,但是由server發(fā)向client的數(shù)據(jù)就不能使用公鑰進行加密,所以這部分數(shù)據(jù)傳輸是不安全的。

 從對稱加密及非對稱加密的原理來看,單獨的其中一個都沒法滿足要求,那么就結合2者的優(yōu)勢。

9 https簡易工作流程

    總的思路:利用非對稱加密的方式,使celient與server協(xié)商一個臨時key,然后通過對稱加密的方式將協(xié)商的key進行數(shù)據(jù)傳輸。
 
    1.client利用非對稱加密的方式向server端獲取公鑰,并且server端會返回它公鑰    #此時 server 存在一個公鑰及私鑰 client 存在 公鑰
   
    2.client隨機將數(shù)據(jù)A通過公鑰進行加密為D1發(fā)給sever端
    3.server端通過私鑰對D1進行解密得到數(shù)據(jù)A,并且與client進行協(xié)商,以A作為臨時key進行數(shù)據(jù)傳輸。
    4.當整個數(shù)據(jù)傳輸完成,臨時Key A 將被從服務器里刪除。
 
    通過https的流程可以看出只要有公鑰及私鑰就可以實現(xiàn)安全傳輸,從原理上分析是沒有問題的,
但是存在個問題,如果在中間插入第三者A,那么對于client而言,A就是server,那么怎么能最大限度的避免這個問題了?
    那就需要引入數(shù)字簽名的概念了。

10 什么是數(shù)字簽名

    B1現(xiàn)在手上有2把要是,分別是公鑰及私鑰。然后分別把公鑰送給了B2,B3,B4。
 
    現(xiàn)在B2決定給B1寫一份私密性,并且使用公鑰進行加密,這個時候,也只有B1通過私鑰進行解密才能得到信的內(nèi)容。
 
    B1看到信的內(nèi)容后,決定在回一封信,但是需保證B2拿到的信是完整的,那就對信的摘要進行哈希運算,
得帶一個值 就是 "數(shù)字簽名",然后將這個值(簽名)使用私鑰進行加密,最后將數(shù)字簽名,信一起發(fā)給B2.
 
    B2收到B1的信后,獲取信件及數(shù)字簽名。然后使用公鑰對信的摘要進行解密,在進行哈希運算,
如果跟B1發(fā)送的一樣,則信沒有被修改,是完整的,在通過協(xié)商的私鑰對信的內(nèi)容進行解密,得到信的內(nèi)容。
 
   在B1給信使用哈希運算及使用私鑰加密的過程就叫數(shù)字簽名。

11 什么是CA

CA是頒發(fā)證書的權威機構,主要功能是負責證書簽發(fā),證書認證,證書管理。

12 什么是數(shù)字證書

    數(shù)字證書主要是用來認證公鑰持有者的身份合法的電子文檔,已防止第三方冒充。
    數(shù)字證書是由CA機構頒發(fā)的證書,包含證書頒發(fā)機構名稱,有效期限,證書的公鑰,證書的主題,簽名所使用的算
    法,準確來說是由PKI體系規(guī)范了證書內(nèi)容。
    當然一般的數(shù)字證書都是要錢的,同時在阿里云,騰訊云也可以申請單域名的數(shù)字證書,這個是免費的,名額有限。

13 從CA方面簽發(fā)證書的過程

    簽發(fā)過程:
    (CA)
        1.服務機構向CA申請ssl證書,需提供一些相關證書驗證信息,申請的證書級別不同需要驗證的證書信息就不同,費用也不同,比如
        在騰訊云申請免費的ssl證書,只需提供域名及對應的郵箱。
        2.CA機構對你的提供的信息進行驗證,驗證成功過后,生成ssl證書。當前證書只包含你申請的一些信息,例如:證書簽發(fā)人,簽發(fā)地
        址,簽發(fā)時間,有效期,證書持有者基本信息
        3.CA使用hash算法對證書進行計算,得到一個hash值,稱呼為 數(shù)字摘要(也叫數(shù)字指紋),這個hash算法也叫指紋算法。
        4.CA機構通過自己的私鑰對數(shù)字摘要,指紋算法進行加密,形成數(shù)字簽名。
        5.CA機構將數(shù)字簽名+數(shù)字證書+元數(shù)據(jù)組合一起,形成一個 有簽名的數(shù)字證書
        5.然后將數(shù)字證書+服務機構私鑰+CSR文件打包發(fā)送給服務機構。

    驗證證書:
    (client)
        1.當client向server端發(fā)起https請求時,server會將CA機構頒布的證書文件+數(shù)字簽名發(fā)送給client。
        2.客服端通過內(nèi)置信任的CA機構公鑰對數(shù)字前面進行解密
        3.然后采取同樣的算法對證書進行哈希運算,得到哈希值,如果與發(fā)過來的摘要一樣,代表證書是可信的,只要證書的任意值被修改,
        hash值就會變化。
        4.驗證通過后,client就可以跟server進行正常的https請求流程了。
    注:在整個過程中,CA的公鑰是內(nèi)置在瀏覽器或者操作系統(tǒng)的,主要用來解密數(shù)字簽名。而服務器的公鑰是存在ssl證書里的,主要用于
    秘鑰協(xié)商。

14 防止中間人攻擊

    那就得靠這個CA簽發(fā)的數(shù)字簽名,因為CA機構的私鑰就只有他自己,而別人沒有的,如果中間人對證書傳輸?shù)淖C書進行修改,在進行
    加密,client就算利用中間人的公鑰進行解密,也會發(fā)現(xiàn)數(shù)字簽名的哈希值不對等,因此判定證書被修改。
    hash算法可以保證值的唯一性,不可修改性,只要文件的一個字符出現(xiàn)變化,hash值也會隨之出現(xiàn)變化,當然也不是絕地安全的,根據(jù)
    hash算法的不同,可以定義不同安全的級別。

15 SSL證書類型

一般來說SSL證書分為3類,分別是域名型(DV)SSL證書,企業(yè)型(OV)SSL證書,增強型(EV)SSL證書。

域名型SLL證書又稱DV 證書,安全等級一般,證書頒布機構只要驗證網(wǎng)站的真實性即可頒布此證書保護網(wǎng)站,進行網(wǎng)站重要信息加密,一般用于軟件下載站。

企業(yè)型SSL證書又稱OV 證書,安全等級高于DV證書,申請者需要填寫一些組織機構資料提交于證書頒布機構,經(jīng)過通過證書頒布機構嚴格審核,方可頒布。在整個過程中,證書機構不僅要確定網(wǎng)站的真實性,還要對您提交資料信息的準確性進行多方查驗,均沒問題方可通過,適合用于電商類型網(wǎng)站。

增強型SSL證書又稱EV證書,安全等級最高,申請條件更復雜,驗證流程更多,并且使用增強型SSL證書的網(wǎng)站,在網(wǎng)址前端會變成綠色,很好辨認,一般用于銀行證券等機構。文章來源地址http://www.zghlxwxcb.cn/news/detail-479804.html

到了這里,關于Nginx配置https及證書的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • NGINX 配置本地HTTPS(免費證書)

    NGINX 配置本地HTTPS(免費證書)

    生成秘鑰key,運行: 會有兩次要求輸入密碼,輸入同一個即可。輸入密碼然后你就獲得了一個server.key文件。 以后使用此文件(通過openssl提供的命令或API)可能經(jīng)?;匾筝斎朊艽a,如果想去除輸入密碼的步驟可以使用以下命令: 創(chuàng)建服務器證書的申請文件server.csr,運行: 其中Country

    2024年02月03日
    瀏覽(21)
  • openssl生成https證書及nginx https配置

    一、nginx根目錄下創(chuàng)建?cert 目錄,用于存放https證書 二、openssl生成https證書證書 三、nginx配置https 參考文檔: ????????https://blog.51cto.com/u_481814/1835713 ????????https://www.cnblogs.com/caidingyu/p/11904277.html

    2024年02月10日
    瀏覽(19)
  • 【Nginx】使用自生成證書配置nginx代理https

    使用Nginx代理HTTPS請求并使用自簽名證書,可以按照以下步驟進行配置: 生成自簽名證書: 打開終端或命令提示符,并導航到Nginx配置文件所在的目錄。 運行以下命令生成自簽名證書和私鑰: openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl.key -out ssl.crt 根據(jù)提示輸入證書的相

    2024年01月18日
    瀏覽(26)
  • Windows下nginx配置HTTPS證書

    Windows下nginx配置HTTPS證書

    官網(wǎng)下載:openSSL: http://slproweb.com/products/Win32OpenSSL.html 1、雙擊 Win64OpenSSL_Light-3_1_0.exe 2、安裝 openssl 3、選擇安裝路徑:安裝在nginx根目錄下。 4、接下來默認即可,一直點擊 Next。一直到finish。 1)在系統(tǒng)變量中添加 OpenSSL ,地址為安裝路徑。 右擊此電腦 --》點擊屬性 --》點擊

    2024年02月04日
    瀏覽(15)
  • 配置https---Nginx認證ssl證書

    配置https---Nginx認證ssl證書

    nginx作為前端的負載均衡服務器已經(jīng)很熟悉了,項目需要使用https安全的時候就需要認證證書了 dockerweb管理工具 Portainer 如果對docker不那么熟悉可以使用docker 第三方管理端 然后訪問本地9000端口,登錄后可以管理容器鏡像 有了該工具可以直接進入容器查看日志等操作 nginx環(huán)境安裝

    2024年01月19日
    瀏覽(26)
  • nginx配置ssl證書使用https訪問

    nginx配置ssl證書使用https訪問

    一:申請證書,我使用的是阿里云免費證書 二:下載證書,解壓到服務器上 兩個文件:www.xx.com.pem和www.xx.com.key 三:打開配置文件/usr/local/nginx/conf/nginx.conf 放開端口443,替換ssl_certificate和ssl_certificate_key為自己證書路徑 ? ?server { ? ? ? ? listen ? ? ? 443 ssl; ? ? ? ? server_na

    2024年01月20日
    瀏覽(33)
  • Nginx配置ssl證書實現(xiàn)https安全訪問

    Nginx配置ssl證書實現(xiàn)https安全訪問

    目錄 一、Nginx的安裝與配置 安裝步驟 二、SSL證書獲取 三、Nginx配置 前題條件,擁有服務器與可以解析到該服務器的自己的域名。 若已安裝好了Nginx,則需查看自己的Nginx是否開啟了SSL的模塊功能: ?顯示如上,則代表ssl功能已開啟,否則可能出現(xiàn)以下錯誤提示: nginx: [emer

    2024年02月15日
    瀏覽(29)
  • 配置SSL證書后,Nginx的HTTPS 不能正常

    申請ssl證書,配置nginx支持https與證書,可是訪問https的nginx總是出現(xiàn)錯誤,也導致小程序發(fā)https請求失敗,這是什么原因呢? 如果在配置SSL證書后,Nginx的HTTPS無法正常工作,可能有以下幾個常見原因: 1、證書配置錯誤: 證書文件路徑出現(xiàn)錯誤或不存在;文件格式錯誤;證書

    2024年02月03日
    瀏覽(28)
  • nginx編譯以及通過自定義生成證書配置https

    nginx編譯以及通過自定義生成證書配置https

    nginx安裝編譯安裝以及配置https,需要 gcc-c++ pcre-devel openssl openssl-devel 軟件。因此需要先安裝相關軟件。 openssl/openssl-devel :主要用于nginx編譯的 http_ssl_module 模塊安裝以及證書的生成。 依次執(zhí)行如下命令: 解壓壓縮包 執(zhí)行屬性配置 http_ssl_module:支持配置https模塊 –prefix=/us

    2024年02月14日
    瀏覽(19)
  • Linux nginx實現(xiàn)訪問,配置ssl證書實現(xiàn)https訪問

    注意:服務器需要開通80端口 (1)alias: alias指定的路徑是location的別名,不管location的值怎么寫,資源的 真實路徑都是 alias 指定的路徑 例如:同樣請求 http://xxx.com/upload/top.gif 時,在服務器查找的資源路徑是: /www/wwwroot/upload/top.gif (2)root:真實的路徑是root指定的值加上

    2024年02月01日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包