Frp-frp下反向代理实现https协议
前言:由于需要很多地方用到内网穿透环境,所以选择了frp,近阶段需要Https,所以有了此文,
本文分为frp自身功能和frp+Nginx进行反向代理实现https
环境介绍:我这里的环境是服务端和客户端的配置均是可以在Linux/Windows下运行的,唯一需要注意的是linux上证书和windows获取方式不同,windows较麻烦,这里就不演示了,我这里用的是域名绑定的Linux服务端生成证书存放在Windows客户端下的
系统 | 版本 |
---|---|
Linux | CentOS7 |
Windows | Windows Server2012 |
1|0一、frp
frp的Github地址:https://github.com/fatedier/frp/releases
注意服务端和客户端的版本是需要一致的
如只有一端不知道版本可以进入目录通过./frps -v
或者./frpc -v
查看版本号
详细操作这里就不介绍了,可以参考其他文章
2|0二、证书生成
我这里用的是Let’s Encrypt,毕竟免费,哈哈,安装方式用的是Certbot
这里的Certbot安装方式已经过时,请跳转到https://www.cnblogs.com/shook/p/14486938.html进行查看(2021.03更新)
下面是wiki上的简介:
- Let’s Encrypt 是一个将于2015年末推出的数字证书认证机构,将通过旨在消除当前手动创建和安装证书的复杂过程的自动化流程,为安全网站提供免费的SSL/TLS证书。 Let’s Encrypt 是由互联网安全研究小组(ISRG,一个公益组织)提供的服务。主要赞助商包括电子前哨基金会,Mozilla基金会,Akamai以及思科。2015年4月9日,ISRG与Linux基金会宣布合作。用以实现这一新的数字证书认证机构的协议被称为自动证书管理环境(ACME)。 GitHub上有这一规范的草案,且提案的一个版本已作为一个Internet草案发布。Let’s Encrypt 宣称这一过程将十分简单、自动化并且免费。 2015年8月7日,该服务更新其推出计划,预计将在2015年9月7日当周某时发布首个证书,随后向列入白名单的域名发行少量证书并逐渐扩大发行。若一切按计划进行,该服务预计将在2015年11月16日当周某时全面开始提供.
注意:在装证书之前先把Nginx或者80.443相关服务先停止,不然会发生端口冲突发生如下错误
Linux下安装:
Github代码下载:git clone https://github.com/letsencrypt/letsencrypt.git
先执行:
再进入目录:
执行:
./letsencrypt-auto certonly --standalone --email 123@123.com -d 二级域名.域名.com
如果使用的是xx云默认的python环境出现
这种错误
使用:pip install --upgrade virtualenv==16.7.9
升级即可
没有报错的话会出现如下提示:
可以看到证书存放地址以及域名过期时间
进入目录查看一下
这里只展示单域名,现在通配符泛域名解析letsencrypt也是支持的了,但是需要DNS解析,我这里以后有需要会写出方法
- certbot自动定时续期证书方法
certbot renew #手动测试,查看证书过期时间
certbot renew --force-renewal #忽略证书过期时间,直接重置证书时间
crontab -e #定时任务
0 0 1 * * /usr/bin/certbot renew --force-renewal #编辑文件
3|0三、frp自身进行反向代理实现https
- 为了体现内网穿透,这里我们准备了一台服务端和一台客户端,系统分别是CentOS和WindowsServer,具体情况具体分析吧
需要注意的是这里的证书是放在客户端下的
服务端配置(Linux上frps.ini)
配置完之后运行服务端
Linux : ./frps -c ./frps.ini
Windows : 进入目录frps.exe
服务端配置完成
客户端配置(Windows上frpc.ini)
配置完之后运行服务端
Linux : ./frpc -c ./frpc.ini
Windows : 进入目录frpc.exe
服务端配置完成
关于frp命令的后台启动方法
使用systemctl来控制启动
```sudo vim /lib/systemd/system/frps.service````
写入以下内容
然后就启动frps
sudo systemctl start frps
再打开自启动
sudo systemctl enable frps
如果要重启应用,可以这样,sudo systemctl restart frps
如果要停止应用,可以输入,sudo systemctl stop frps
如果要查看应用的日志,可以输入,sudo systemctl status frps
就可以运行了
frp官方文档:https://github.com/fatedier/frp/blob/master/README_zh.md 建议多读官方的文档
frps完整版配置文件:https://github.com/fatedier/frp/blob/master/conf/frps_full.ini
frpc完整版配置文件:https://github.com/fatedier/frp/blob/master/conf/frpc_full.ini
4|0四、 Nginx+frp的配置
这里的环境也是一台服务端和一台客户端,系统分别是CentOS和WindowsServer
需要注意的是这里的证书是放在服务端下的
Nginx这里不介绍安装了
直接上配置文件 .conf
服务端配置(Linux上frps.ini)
配置完之后还是运行服务端测试一下
Linux : ./frps -c ./frps.ini
Windows : 进入目录frps.exe
客户端配置(Windows上frpc.ini)
配置完之后还是运行客户端测试一下
Linux : ./frpc -c ./frpc.ini
Windows : 进入目录frpc.exe
到此的话应该就没有其他问题了
参考文章:https://cloud.tencent.com/developer/article/1581948
__EOF__

本文链接:https://www.cnblogs.com/shook/p/12790532.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!