1. Nginx系列:https配置

        共 2619字,需瀏覽 6分鐘

         ·

        2020-08-28 03:54

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

        有HTTP了,為什么需要HTTPS

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

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

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

        • 對稱加密:加密秘鑰和解密秘鑰是一樣的

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

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

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

        ?

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

        ?

        ?

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

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

        Nginx的https需要安裝with-stream_ssl_preread_module目錄,在nginx的源碼目錄執(zhí)行以下命令,可以看出nginx默認(rèn)并不會安裝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命令的基本用法

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

        使用如下命令生成key秘鑰

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

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

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

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

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


        執(zhí)行命令的過程中需要根據(jù)提示輸入一些相關(guān)的信息,最終會在當(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的基本語法如下

        ssl開關(guān):

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

        ssl證書文件

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

        ssl密碼文件

        配置語法: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;?#?請求認(rèn)證?key?的路徑

        啟動Nginx

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

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

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

        掃碼二維碼

        獲取更多精彩

        Java樂園

        有用!分享+在看?


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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 中国黄色学生妹一级片 | 勉费操逼视频 | 骚骚肥肥一区二区三区 | 三区在线播放 | 日本护士三级少妇三级999 |