<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Nginx系列:https配置

          共 2619字,需瀏覽 6分鐘

           ·

          2020-08-28 03:54

          點(diǎn)擊上方「藍(lán)字」關(guān)注我們

          有HTTP了,為什么需要HTTPS

          主要原因是HTTP數(shù)據(jù)傳輸時(shí)沒(méi)有對(duì)數(shù)據(jù)進(jìn)行加密,所以導(dǎo)致數(shù)據(jù)不安全。而HTTPS在HTTP上加了一層,對(duì)數(shù)據(jù)進(jìn)行加密,這樣就保證了數(shù)據(jù)的安全性。防止傳輸?shù)臄?shù)據(jù)過(guò)程中被不法分子盜用、劫持、篡改,而導(dǎo)致數(shù)據(jù)信息的泄露。

          HTTPS協(xié)議的實(shí)現(xiàn)

          對(duì)傳輸內(nèi)容進(jìn)行加密以及身份驗(yàn)證

          • 對(duì)稱加密:加密秘鑰和解密秘鑰是一樣的

          • 非對(duì)稱加密:加密密鑰與解密密鑰是不一樣的,但是是成對(duì)的。

          • ?HTTPS加密協(xié)議原理

          中間人偽造客戶端和服務(wù)端:(中間人可以偽裝成客戶端和服務(wù)端,中間人可以對(duì)數(shù)據(jù)進(jìn)行劫持,不安全

          ?

          HTTPS的CA簽名證書:(服務(wù)端和客戶端通過(guò)實(shí)現(xiàn)約定好的證書進(jìn)行認(rèn)證,都會(huì)對(duì)證書進(jìn)行校驗(yàn),所以中間人沒(méi)法劫持?jǐn)?shù)據(jù),故安全

          ?

          ?

          0x01:先驗(yàn)證Nginx安裝情況

          在【Nginx系列:Nginx源碼安裝】?文章中,知道安裝Nginx時(shí),必須首先安裝openssl openssl-devel依賴 模塊,而這兩個(gè)模塊就是HTTPS需要用戶的類庫(kù);所以毫無(wú)疑問(wèn)安裝Nginx時(shí),Linux系統(tǒng)肯定安裝了這兩個(gè)模塊;

          Nginx的https需要安裝with-stream_ssl_preread_module目錄,在nginx的源碼目錄執(zhí)行以下命令,可以看出nginx默認(rèn)并不會(huì)安裝stream_ssl_preread_module模塊的,需要重新編譯安裝一下

          cat?auto/options?|?grep?YES??|?grep?ssl

          安裝一下stream_ssl_preread_module模塊

          ./configure?--prefix=/usr/local/nginx?--user=nginx?\
          ?--group=nginx?--with-http_secure_link_module?\
          --with-http_stub_status_module?--with-stream_ssl_preread_module
          --with-http_ssl_modulemake
          cd?objs/
          mv?nginx?/usr/local/nginx/sbin/



          0x02:生成秘鑰和CA證書

          • 生成key秘鑰

          先進(jìn)入Nginx的安裝目錄,然后生成一個(gè)目錄,存放密鑰和CA證書

          cd?/usr/local/nginx/conf/
          mkdir?httpsKeys
          cd?httpsKeys

          先看下openssl命令的基本用法

          基本語(yǔ)法:
          openssl?genrsa?[args]?[numbits]
          說(shuō)明:
          args1?對(duì)生成的私鑰文件是否要使用加密算法進(jìn)行對(duì)稱加密:?
          ????-des?:?CBC模式的DES加密?
          ????-des3?:?CBC模式的3DES加密?
          ????-aes128?:?CBC模式的AES128加密?
          ????-aes192?:?CBC模式的AES192加密?
          ????-aes256?:?CBC模式的AES256加密?
          args2?對(duì)稱加密密碼
          ????-passout?passwords
          ????其中passwords為對(duì)稱加密(des、3desaes)的密碼(使用這個(gè)參數(shù)就省去了console交互提示輸入密碼的環(huán)節(jié))?
          args3?輸出文件
          ????-out?file?:?輸出證書私鑰文件?
          [numbits]:?密鑰長(zhǎng)度,理解為私鑰長(zhǎng)度?

          使用如下命令生成key秘鑰

          openssl?genrsa?-idea?-out?jesonc.key?2048

          執(zhí)行以上命令需要輸入密鑰key的密碼,這里使用密碼:admin,最終在當(dāng)前目錄生成一個(gè)jesonc.key的密鑰文件。

          • 生成證書簽名請(qǐng)求文件(csr文件)

          根據(jù)密鑰文件jesonc.key生成證書簽名請(qǐng)求文件jesonc.csr

          openssl?req?-new?-key?jesonc.key?-out?jesonc.csr


          執(zhí)行命令的過(guò)程中需要根據(jù)提示輸入一些相關(guān)的信息,最終會(huì)在當(dāng)前目錄生成jesonc.csr文件。

          • 生成證書簽名文件(CA文件)

          生成證書簽名文件(CA文件),有效期設(shè)置為10年,這個(gè)有效期根據(jù)自己的要求設(shè)置。

          openssl?x509?-req?-days?3650?-in?jesonc.csr?\
          -signkey?jesonc.key?-out?jesonc.crt


          0x03:nginx配置https

          Nginx配置HTTPS的基本語(yǔ)法如下

          ssl開關(guān):

          配置語(yǔ)法:listen?443?ssl;??#?1.1版本后這樣寫

          ssl證書文件

          配置語(yǔ)法:ssl_certificate file;
          默認(rèn)狀態(tài):-
          配置方法:http、server

          ssl密碼文件

          配置語(yǔ)法:ssl_certificate_key file;
          默認(rèn)狀態(tài):ssl off;
          配置方法:http、server

          在server模塊添加如下配置

          ????????listen???????443 ssl;
          ????????server_name??localhost;

          ???????
          ????????ssl_session_cache???shared:SSL:10m;
          ????????ssl_session_timeout?10m;

          ????????ssl_certificate?/usr/local/nginx/conf/httpsKeys/jesonc.crt;?#?證書路徑
          ????????ssl_certificate_key?/usr/local/nginx/conf/httpsKeys/jesonc.key;?#?請(qǐng)求認(rèn)證?key?的路徑

          啟動(dòng)Nginx

          啟動(dòng)Nginx時(shí)需要輸入密碼,這是因?yàn)?strong style="font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 15px;text-align: start;white-space: normal;">生成證書簽名請(qǐng)求文件(csr文件)在A?challenge?password時(shí)我輸入了密碼。這個(gè)密碼可以不輸入。

          驗(yàn)證是否可以訪問(wèn),雖然目前自簽名的證書已經(jīng)不能使用;但是nginx的HTTPS大致是這樣配置的。

          參考:?https://www.cnblogs.com/crazymagic/p/11042333.html

          掃碼二維碼

          獲取更多精彩

          Java樂(lè)園

          有用!分享+在看?


          瀏覽 84
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久久久无码精品国产91福利 | 草逼视频链接 | 日韩网站污 | 东京热黄色录像大全 | 久久99精品久久久久久不卡l中文无码精品 |