如何快速、便捷的设置反向代理,并自动申请证书

1. 准备条件:

  • 有一个自己域名,并完成DNS(以cloudflare为例)
  • 有一台含公网ip的服务器,安装好docker compose环境

网络概览图

2.npm部署的一个典型compose文件

compose.yml:

services:
  npm:
    image: jc21/nginx-proxy-manager:latest
    restart: always
    container_name: npm
    ports:
      - 443:443
      - 81:81
    volumes:
      - ./npm/data:/data 
      - ./npm/letsencrypt:/etc/letsencrypt  

# admin@example.com  changeme

  nps:
    image: ffdfgdfg/nps
    container_name: nps
    restart: always
    ports:
      - 8024:8024
      - 8080:8080
      - 9001-9005:9001-9005             
    volumes:
      - ./nps/conf:/conf

#  admin 123

3.别忘了开放端口:

sudo firewall-cmd \
 --add-port=22/tcp \
 --add-port=81/tcp \
 --add-port=443/tcp \
 --add-port=8080/tcp \
 --add-port=8024/tcp \
 --add-port=9001/tcp \
 --permanent
sudo firewall-cmd --reload

sudo firewall-cmd --zone=public --list-ports

4.到cloud flare进行DNS

nps

npm

ikuai

5. 到Cloud flare申请token

6. NPM界面操作

  • 申请证书
  • 配置代理

7.此时发现有些端口不用暴露到外网,那么进行删除

sudo firewall-cmd --zone=public --remove-port=81/tcp --remove-port=8080/tcp --remove-port=9001/tcp --permanent
sudo firewall-cmd --reload

8.NPC也进行了compose文件改造

如果上期视频使用命令运行起来的话,可以不用管,也可以像我一样改造,使用compose运行,但是记得要删除之前运行的容器

services:
  npc:
    image: ffdfgdfg/npc
    container_name: npc
    command: -server=nps.mjvlog.top:8024 -vkey=g4x0yw778uomt6n8
    network_mode: host
    restart: always

9. 查看加了证书访问网站的效果

有了证书,浏览网页就显示安全的,那么我们的账号密码就可以加密传输,不会暴露了

10.新的问题

我有很多内网服务,压根儿就不想暴露在公网,也没有必要,甚至不推荐暴露在公网,比如esxi,比如这个路由器页面我就不想暴露,那有没有一种更安全的方法,不但使用证书加密,而且加入MFA验证,登录一个页面后,就可以无缝访问家里的Linux ,WINDOWS服务器,路由器,各种web页面,下期视频给大家介绍,敬请期待

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注