FRP内网穿透-HTTPS代理Web服务

通过自定义域名访问内网的 Web 服务

本文将介绍使用 自定义域名 通过FRP将内网机器上的web服务映射到外网,并且配置SSL证书,使用 HTTPS协议 访问。

需要使用的工具:

  • 域名一个(解析到 FRP服务端 机器上)
  • 域名证书(若不需要 https 可不需要)
  • NGINX(安装在 FRP客户端 机器上)

1. 配置FRP服务端

  • 配置 frps.toml
    在 frps.toml 文件中添加以下内容,以指定 HTTP 请求的监听端口为 80,HTTPS请求的监听端口为 443:

    toml 复制代码
    # HTTP 类型代理
    vhostHTTPPort = 80
    # HTTPS 类型代理
    vhostHTTPSPort = 443
  • 配置好需重启frps服务

    shell 复制代码
    sudo systemctl restart frps

2. 配置FRP客户端

  • 配置 frpc.toml
    在 frpc.toml 文件中添加一下内容,以指定访问域名及访问协议:

    toml 复制代码
    [[proxies]]
    name = "web1"
    type = "http"
    localPort = 80
    customDomains = ["test1.example.com"]
    
    [[proxies]]
    name = "web2"
    type = "https"
    localPort = 443
    customDomains = ["test2.example.com"]
  • 配置好需重启frpc服务

    shell 复制代码
    sudo systemctl restart frpc

3. 配置 NGINX

在内网机器上安装好Nginx
将SSL证书上传到内网机器

新增 nginx 配置(HTTP配置):

conf 复制代码
server {
	#HTTP 默认访问端口号为 80
	listen 80; 
	#请填写绑定证书的域名
	server_name test1.example.com; 

	location / {
		root   /opt/test/web1;
		try_files $uri $uri/ /index.html;
		index  index.html index.htm;
	}
}

新增 nginx 配置(HTTPS配置):

conf 复制代码
server {
	#HTTPS默认访问端口号为 443
	listen 443 ssl; 
	#请填写绑定证书的域名
	server_name test2.example.com; 
	#请填写证书文件的相对路径或绝对路径
	ssl_certificate /etc/nginx/conf.d/cert/test2.example.com.crt; 
	#请填写私钥文件的相对路径或绝对路径
	ssl_certificate_key /etc/nginx/conf.d/cert/test2.example.com.key; 
	ssl_session_timeout 5m;
	#请按照以下协议配置
	ssl_protocols TLSv1.2 TLSv1.3; 
	#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
	ssl_prefer_server_ciphers on;

	location / {
		root   /opt/test/web2;
		try_files $uri $uri/ /index.html;
		index  index.html index.htm;
	}
}

配置好需 重载nginx配置

shell 复制代码
# 校验nginx配置
sudo nginx -t
# 重载nginx配置
sudo nginx -s reload

4. 访问web服务

分别访问 http://test1.example.comhttps://test2.example.com,能访问则说明配置成功。

上一章:FRP内网穿透-客户端(frpc)

相关推荐
艾莉丝努力练剑19 小时前
【Linux网络】网络层IP协议(二):网段划分
linux·运维·服务器·网络·tcp/ip·udp
sbjdhjd19 小时前
04 (下) | K8S微服务实战:从 Service 到金丝雀发布
运维·微服务·云原生·kubernetes·开源·云计算·excel
江华森19 小时前
Jenkins 运维管理实战博客大纲
运维·jenkins
艾莉丝努力练剑19 小时前
【Linux网络】网络层IP协议(三):网段划分(下)
linux·运维·服务器·网络·tcp/ip
尔染君子19 小时前
嵌入式Linux驱动开发(基于树莓派rasberrypi 5的LED驱动开发)
linux·运维·驱动开发
上海云盾安全满满19 小时前
服务器CPU跑满的原因及解决办法
运维·服务器
tobias.b19 小时前
供电不稳定、无UPS/无双电源环境下服务器高可用完整方案
运维·服务器
scan72419 小时前
从runtime获取信息
java·服务器·前端
团象科技19 小时前
从出海业务落地视角观察 海外服务器跑开源软件的实操逻辑演变
运维·服务器·开源软件
加成BUFF19 小时前
第七天 ROS《 参数服务器与Launch文件》
运维·ros·参数服务器