使用 npm 反向代理內部 nginx 的靜態網站為 https
繼續上一篇 CHG: 使用 duckdns 轉發自建的靜態網頁伺服器 已經有一個網域可以打開了,再來是要處理 https 的安全連接
安裝 Nginx Proxy Manager
這裡用 docker 快速搭一個就可以
記得讓出 80/433 兩個端口,否則申請 Let’s Encrypt 憑證會報錯失敗
# 創建資料夾
sudo mkdir -p /srv/npm/data
sudo mkdir -p /srv/npm/letsencrypt
sudo chown -R 1000:1000 /srv/npm
# 安裝 npm
docker run -d \
--name npm \
--restart unless-stopped \
-p 80:80 \
-p 443:443 \
-p 81:81 \
-v /srv/npm/data:/data \
-v /srv/npm/letsencrypt:/etc/letsencrypt \
jc21/nginx-proxy-manager:latest
建好之後從 http://localhost:81 端口進入管理介面,預設的帳帳密碼是
- 帳號: admin@example.com
- 密碼: changeme
第一次進入會要求你註冊一個超級管理員帳號,弄好登入可以看到這個頁面
接下來需要你到路由器上把上一篇
CHG: 在 ubuntu 使用 docker 架設 nginx 靜態網站伺服器
原本
真實IP:80 轉發到 192.168.3.92:8081
*這部分改成
真實IP:80 轉發到 192.168.3.92:80
*再來追加一條
真實IP:433 轉發到 192.168.3.92:433
這裡的 80/433 是剛剛建立的 Nginx Proxy Manager 服務
接下來將經由 npm 反向代理到內部的 8081 靜態網站
81是管理介面不要對外開放避免發生安全問題,保持在區網內使用端口接入就好
新增一個反向代理
註冊好之後從 Proxy Hosts 中新增一個反向代理
網域填你剛剛註冊的,我這裡範例是 chgsite.duckdns.org
IP填 172.17.0.1 這是 docker 的網關,因為靜態伺服器設在 docker 中
Scheme 只能填 http 就好,因為我們內部的 nginx 並沒有啟用 https
最後 port 填寫剛剛創建的 8081
然後在瀏覽器打上 http://chgsite.duckdns.org 應該就能看見你的網站了
新增對外的 SSL 憑證
這裡從簡在 NPM 中申請免費的 Let’s Encrypt 憑證就好,編輯剛剛建立的反向代理
在上方的分頁選擇 SSL 進入之後,第一個選擇申請新的 SSL 憑證
然後按下確定就會自動申請了,記得對外要打開 80 與 433,任一沒開都會報錯
申請完畢之後就可以使用 https://chgsite.duckdns.org 就能擺脫瀏覽器的安全性警告了
這樣就處理完成了
沒有留言:
張貼留言