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

輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程

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

輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程

前言

一般我們在本地進行 web 開發(fā)時用的都是 http 協(xié)議,而部署到服務(wù)器上之后為了安全都要配置 https,以保證客戶端和服務(wù)器之間的通信內(nèi)容得到加密,不會被泄露或篡改。

本文將介紹 https 協(xié)議的基本知識(如果有基礎(chǔ)可以跳過),以及如何使用 Let’s Encrypt 給你的服務(wù)優(yōu)雅地配置 https。

HTTPS

https本質(zhì)上還是http,只不過https使用了ssl協(xié)議來加密通信內(nèi)容。

ssl是一個介于TCP和應(yīng)用層的協(xié)議,基于非對稱加密算法,用于確保通信雙方的交流是私密的

對稱加密

加密解密使用同一把密鑰,但是如何安全地傳輸這個密鑰是個問題

非對稱加密

有三條原則:

  1. 私鑰加密,公鑰解密
  2. 公鑰加密,私鑰解密
  3. 公鑰加密,公鑰無法解密

服務(wù)端給客戶端發(fā)放公鑰,客戶端使用公鑰加密請求,只有服務(wù)端的私鑰能解密。服務(wù)端使用私鑰加密響應(yīng),客戶端使用公鑰解密。

看起來很美好,但這樣存在很一個很大的問題:如果有一個壞人(中間人)像下圖這樣操作,你們的通訊還是會被竊聽甚至篡改的。

輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程,https,docker

問題的本質(zhì)在于:客戶端不知道自己拿到的公鑰是不是真實服務(wù)器的公鑰

CA證書

于是,引入了可信任的第三方權(quán)威機構(gòu)CA(Certificate Authority)

輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程,https,docker

通過以上步驟可以保證客戶端拿到的一定是真實服務(wù)器的公鑰

混合加密

其實通過以上步驟已經(jīng)可以保證加密通信了, 但是非對稱加密的效率太低了, 而更高效的對稱加密卻不安全, 所以我們采用混合加密, 即使用非對稱加密傳輸對稱加密的密鑰, 雙方拿到對稱加密的密鑰之后使用對稱加密進行通信

以下步驟(即ssl握手)發(fā)生在TCP三次握手之后:

輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程,https,docker

通過以上方式,雙方都擁有了相同的密鑰,而且這個密鑰是安全的,沒有被任何中間人獲取到。

聯(lián)想:抓包軟件

我們使用各種抓包軟件時(如Fiddler),會發(fā)現(xiàn)無法解析HTTPS的包,要想實現(xiàn)就必須要在系統(tǒng)中安裝它自己簽發(fā)的CA證書。

學(xué)完HTTPS后就可以理解了,F(xiàn)iddler相當于是你客戶端和服務(wù)器之間的一個代理,F(xiàn)iddler會經(jīng)手你和服務(wù)器之間所有的流量,所以Fiddler可以向你展示抓包內(nèi)容。

但是有了HTTPS之后,你和服務(wù)器使用的對稱加密密鑰只有你們兩個知道,F(xiàn)iddler就沒辦法解密通訊數(shù)據(jù)了。Fiddler要想解析就只能充當中間人,但是它的自簽發(fā)證書是不被OS信任的,所以你要手動信任該證書。

Let’s Encrypt

上文提到,要想使用 https 協(xié)議,服務(wù)端必須向 ca 機構(gòu)申請一個證書,這個證書是和域名綁定的,也就是說你必須要有一個域名,可以在阿里云等云服務(wù)提供商購買,也可以在 Freenom 免費申請一些小眾后綴的域名。

假設(shè)我們有一個域名叫 baizhukui.com ,指向了一臺服務(wù)器。我們想在這個服務(wù)器上運行一個 http 服務(wù)并配置 https,我們可以選擇在域名提供商購買并下載證書文件,然后將其手動安裝至服務(wù)器上。由于安裝過程比較繁瑣而且 ssl 證書是會過期的,所以我們更推薦另一種獲取 ssl 證書的方式:acme(Automated Certificate Management Environment)。

acme 是一個協(xié)議,旨在自動化網(wǎng)站或網(wǎng)絡(luò)應(yīng)用程序的證書簽發(fā)和管理過程。而 Let’s Encrypt 是一個證書頒發(fā)機構(gòu)(CA),它采用了 ACME 協(xié)議來實現(xiàn)證書的自動化獲取和更新。更重要的是,它是免費的!

我們一般開發(fā)的 web 應(yīng)用都是 http 協(xié)議的,https 這種和業(yè)務(wù)無關(guān)的事情一般都會交給網(wǎng)關(guān)/反向代理去做,例如 nginx,traefik,nginx proxy manager 等。他們負責流量的加密解密,然后把明文數(shù)據(jù)轉(zhuǎn)發(fā)給應(yīng)用去處理。

traefik 和 nginx proxy manager(下文簡稱 npm)都是支持 Let’s Encrypt 的,我們只要做必要的配置,他們就可以自動地獲取/更新/安裝 ssl 證書。npm 的功能簡單夠用,圖形化頁面又很直觀,所以我們就拿 npm 進行講解。

Nginx Proxy Manager

安裝

根據(jù) npm 官方推薦,使用 docker 部署。為了便于互聯(lián),你的 http 服務(wù)也要以 docker 容器的形式部署。

docker network create npm新建一個名為npm的網(wǎng)絡(luò),這是為了讓網(wǎng)關(guān)和你的服務(wù)能夠使用容器名互相訪問,npm 和你的服務(wù)都需要加入此網(wǎng)絡(luò)。

~/.docker/app/npm/docker-compose.yml

version: '3'
services:
  npm:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: npm
    restart: unless-stopped
    ports:
      - '80:80'
      # gui端口
      - '81:81'
      - '443:443'
    volumes:
      - ./volume/data:/data
      - ./volume/letsencrypt:/etc/letsencrypt
    networks:
      - npm
networks:
  npm:
    external: true

啟動后訪問服務(wù)器的 81 端口(記得開放端口),就可以看到 gui 頁面了

默認賬號:admin@example.com

默認密碼:changeme

登進去以后修改賬號密碼

反向代理并配置 https

點擊添加 proxy host

輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程,https,docker

輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程,https,docker

保存,你就可以使用 https://baizhukui.com 訪問你的服務(wù)了。

npm 的 ssl 配置中,dns challenge 是什么?為什么還要配 Credentials File Content?

ca 機構(gòu)簽發(fā)證書之前,必須檢驗?zāi)銓τ谶@個域名的所有權(quán),dns challenge 是檢驗方式的一種。共有以下幾種檢驗方式:

  • DNS 驗證:通過給這個域名添加一條 dns 解析規(guī)則,然后去查看這個解析規(guī)則是否生效?!疤砑?dns 解析規(guī)則”要通過你的域名提供商api來實現(xiàn),比如訪問阿里云的 api 就需要提供你賬號的 access key 和 access secret。由于域名解析規(guī)則傳播需要一定時間,所以生效比較慢。
  • HTTP 驗證:申請者在網(wǎng)站的特定路徑下放置包含特定密鑰或代碼的文件,證明對該域名的控制權(quán)。CA 發(fā)出驗證請求后會嘗試訪問該 URL 來檢查文件的存在性。npm 的默認驗證方式。簡單快速。
  • TLS-SNI 驗證:申請者在服務(wù)器上配置特定的 TLS 證書,CA 發(fā)送驗證請求并檢查該證書以確認域名的控制權(quán)。
  • Email 驗證:CA 發(fā)送驗證郵件到特定的注冊郵箱地址,申請者必須通過郵件中的鏈接或回復(fù)特定的驗證碼來證明對域名的控制權(quán)。

Basic Auth 鑒權(quán)

對于一些沒有提供鑒權(quán)手段但又要暴露在公網(wǎng)上的 http 服務(wù)(例如 loki)來說,“裸奔”總是令人內(nèi)心不安的。還好 npm 提供了 basic auth 功能,要求接口訪問者必須提供正確的賬號密碼。

這就是 access list 功能,我們可以添加一個。

輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程,https,docker

輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程,https,docker

輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程,https,docker

保存,然后去proxy host 那里給對應(yīng)的服務(wù)添加這條鑒權(quán)規(guī)則。

輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程,https,docker

然后客戶端在發(fā)起 http 請求時,要遵循以下規(guī)則:

  1. 客戶端請求訪問受保護的資源。
  2. 服務(wù)器返回 HTTP 狀態(tài)碼 401(未授權(quán)),并在響應(yīng)頭部的 WWW-Authenticate 字段中包含 Basic,表示使用基本認證。
  3. 客戶端收到 401 后,會重新發(fā)送請求,但這次在請求頭部中包含 Authorization 字段,其值為 Basic 后接 base64 編碼的用戶名和密碼組合,格式為 username:password。

例如,如果用戶名是 user123,密碼是 pass456,則經(jīng)過 base64 編碼后的字符串為 dXNlcjEyMzpwYXNzNDU2??蛻舳苏埱箢^部的 Authorization 字段將是 Basic dXNlcjEyMzpwYXNzNDU2。

當然,許多使用場景都會提供現(xiàn)成的 basic auth 功能,你只需要輸入賬號和密碼就可以了。

注意,由于 basic auth 會明文傳輸你的賬號和密碼,所以必須配合 https 使用。否則就像裝了防盜門但是總把鑰匙掛在門上一樣。

由于鑒權(quán)是通過 npm 實現(xiàn)的,我們不能允許有繞過 npm 的機會,所以記得關(guān)掉受保護容器的端口映射,強制所有流量都走 npm。否則就像裝了防盜門但是旁邊又開著窗戶一樣。文章來源地址http://www.zghlxwxcb.cn/news/detail-838385.html

到了這里,關(guān)于輕松配置 https:Let‘s Encrypt 介紹及 Nginx Proxy Manager 實用操作教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【玩轉(zhuǎn)Docker】【02】反向代理神器 — Nginx Proxy Manager

    【玩轉(zhuǎn)Docker】【02】反向代理神器 — Nginx Proxy Manager

    一、安裝 Nginx Proxy Manager 1、創(chuàng)建安裝目錄 2、這里直接用 docker 的方式安裝 英文輸入法下,按 “i” 按一下 esc鍵,然后 “:wq” 保存退出。 二、打開服務(wù)器防火墻并訪問網(wǎng)頁(非必需) 1、打開防火墻的端口 81 (添加規(guī)則:端口 81 ,備注nginxproxymanager) 2、查看端口是否被占

    2024年02月09日
    瀏覽(16)
  • 反向代理神器 Nginx Proxy Manager 群暉Docker部署

    反向代理神器 Nginx Proxy Manager 群暉Docker部署

    本文將使用 NginxProxyManager 中文版 介紹NginxProxyManager基于群暉Docke的部署方法,并且所有操作均在群暉網(wǎng)頁端完成,不需要命令行操作,非常適合新手。 GitHub:xiaoxinpro/nginx-proxy-manager-zh Docker:chishin/nginx-proxy-manager-zh CSDN:NginxProxyManager 中文版簡介 1. 下載映像 登錄群暉后臺并打

    2024年02月04日
    瀏覽(27)
  • docker應(yīng)用:搭建反代神器Nginx Proxy Manager

    docker應(yīng)用:搭建反代神器Nginx Proxy Manager

    簡介 :反向代理服務(wù)器位于用戶與目標服務(wù)器之間,但是對于用戶而言,反向代理服務(wù)器就相當于目標服務(wù)器,即用戶直接訪問反向代理服務(wù)器就可以獲得目標服務(wù)器的資源。同時,用戶不需要知道目標服務(wù)器的地址,也無須在用戶端作任何設(shè)定。反向代理服務(wù)器通??捎脕?/p>

    2024年02月10日
    瀏覽(14)
  • Nginx Proxy Manager申請證書出現(xiàn)Internal Error的解決方法

    這是2.9.19的bug,退回到2.9.18就沒問題了。 附上安裝Nginx Proxy Manager中文版的docker-compose.yml文件

    2024年02月15日
    瀏覽(20)
  • 【Linux | Docker】內(nèi)網(wǎng)穿透實現(xiàn)遠程訪問Nginx Proxy Manager

    【Linux | Docker】內(nèi)網(wǎng)穿透實現(xiàn)遠程訪問Nginx Proxy Manager

    Nginx Proxy Manager 是一個開源的反向代理工具,不需要了解太多 Nginx 或 Letsencrypt 的相關(guān)知識,即可快速將你的服務(wù)暴露到外部環(huán)境,并且支持 SSL 配置。基于 Tabler 的美觀且安全的管理界面,無需了解 Nginx 即可輕松創(chuàng)建轉(zhuǎn)發(fā)域、重定向、流和 404 主機。 下面介紹在Linux 安裝Nginx

    2024年02月05日
    瀏覽(17)
  • Let‘s Encrypt

    ????????Let\\\'s Encrypt —— 是一個由非營利性組織互聯(lián)網(wǎng)安全研究小組(ISRG)提供的免費、自動化和開放的證書頒發(fā)機構(gòu)(CA),簡單的說,就是為網(wǎng)站提供免費的 SSL/TLS 證書?;ヂ?lián)網(wǎng)安全研究小組(ISRG):ISRG是美國加利福尼亞州的一家公益公司,成立于2013年5月,第一個

    2024年02月09日
    瀏覽(13)
  • Let’s Encrypt免費證書獲取方法

    Let’s Encrypt免費證書獲取方法

    域名所有者:Let’s Encrypt 是一個證書頒發(fā)機構(gòu)(CA), 要從 Let’s Encrypt 獲取網(wǎng)站域名的證書,必須證明對域名的實際控制權(quán)。 ACME 協(xié)議軟件 : 在Let’s Encrypt 使用 ACME 協(xié)議來驗證對給定域名的控制權(quán)并頒發(fā)證書, 要從Let’s Encrypt 獲得證書,需要選擇一個要使用的 ACME 客戶端 Certbot 、

    2024年02月05日
    瀏覽(19)
  • Docker獲取Let`s Encrypt SSL 證書

    文中的操作都是在CentOS Stream release 9下執(zhí)行的,使用的是root用戶。 關(guān)于Let`s Encrypt可以參見這里。 certbot安裝使用參加這里。 為了方便維護、升級,同時也避免破壞本地的開發(fā)環(huán)境,我這里使用docker方式來運行certbot。整個過程分為兩步:首次申請證書和證書更新。 因為我的文

    2024年02月01日
    瀏覽(16)
  • Let’s Encrypt SSL 證書的申請與使用

    Let’s Encrypt 是免費、開放和自動化的證書頒發(fā)機構(gòu)。由非盈利組織互聯(lián)網(wǎng)安全研究小組(ISRG)運營。 SSL應(yīng)用開發(fā)者可以免費從 Let’s Encrypt 申請到有效期90天的SSL證書,當然在到期之前也可以更新證書,延長有效期。 Let’s Encrypt 支持 ACME 協(xié)議,可以自動化的完成SSL證書的申

    2024年02月03日
    瀏覽(17)
  • 申請Let‘s Encrypt免費SSL證書、自動化續(xù)簽證書

    申請Let‘s Encrypt免費SSL證書、自動化續(xù)簽證書

    安裝證書的環(huán)境為 Centos + Nginx ,如果沒有安裝Nginx則需要先安裝。 1、開放 80 和 443 端口 2、安裝 certbot 使用certbot工具能夠很方便的申請和續(xù)簽let’s encript證書。 3、執(zhí)行命令 站點目錄:html文件保存位置,只需要到文件夾即可。 比如index.html在/www/a/b/index.html,則這里只要取

    2024年02月08日
    瀏覽(91)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包