使用 Nginx Proxy Manager反向代理開啟SSL

阿鱼君發表於2024-03-28

今天又看到有人在推薦NginxProxyManger(太長了,下文NPM指代),於是我也在區域網的機器內裝了一個,發現確實簡單好用完全的介面操作非常便捷而且支援使用CloudflareDNS驗證申請Let’sEncrypt的萬用字元證書,也很方便設定訪問限制。

安裝部署

  • 使用Docker安裝是非常的簡單首先建立nginx-proxy-manager.yml檔案
version:'3'
services:
nginx-proxy-manage:
container_name:nginx-proxy-manager
image:chishin/nginx-proxy-manager-zh:latest
ports:
-'8188:80'
-'8189:81'
-'8190:443'
volumes:
-/volume1/docker/nginx-proxy-manager/:/data
-/volume1/docker/nginx-proxy-manager/letsencrypt:/etc/letsencrypt
restart:unless-stopped

訪問專案

  • 然後配置檔案所在目錄執行docker-compose-fnginx-proxy-manager.ymlup-d就可以訪問http://ip測試了,管理頁面訪問http://ip:81,預設管理員賬戶如下登入後即時修改。
    預設賬密:Email:admin@example.com Password:changeme

申請SSL證書

  • 申請證書點選頂部的SSL證書>新增SSL證書>新增Let's Encrypt證書,根據如圖提示填寫即可

img

新增反代站點

  • 在Hosts>ProxyHosts中點選AddProxyHost即可新增AddProxyHostDomainNames填寫要使用的域名,下面部分填寫的是目標網站,需要注意的是如果使用的是Docker安裝的NPM,反代本機的站點也不能使用localhost或是127.0.0.1,要填寫對應的區域網IP,或是使用ipaddrshowdocker0獲取的IP地址然後在SSL標籤頁中選擇要使用的證書即可。

img

文章總結

  • 在證書申請頁面新增所需要的域名,新增雲服務商域名的金鑰進行申請免費的域名證書成功後,在新增站點反代內網的一些站點即可實現https訪問,請注意以上申請的必要條件 需要一個獨立的域名和帶有公網或者動態公網ip才可以(動態公網IP需要使用到DDNS)

相關文章