注意服务端和客户端的版本是需要一致的

如只有一端不知道版本可以进入目录通过./frps -v或者./frpc -v查看版本号

对于没有使用过frp的,可以看我之前写 树莓派实现内网穿透的那篇博客

1、下载SSL证书

这里我使用阿里云的服务器,所以就在阿里云上申请一个免费的证书。具体操作过程就不多解释了。。。

注意下载要是nginx的证书

2、使用frp进行https代理

此方式需要注意的是这里的证书是放在客户端下的

  1. 代理服务器(服务器端)设置

进入frps.ini,输入命令

vim frps.ini

编辑

[common]
bind_addr = 0.0.0.0
bind_port = 7000 #服务器开放端口,用于客户端与服务器通信
vhost_http_port = 80 #http虚拟端口,http请求
vhost_https_port = 443 #hhtps虚拟端口
token = XXXXX   #验证信息,客户端需一致dashboard_user = admin # 管理页面用户名
dashboard_pwd = admin@123 # 管理员密码
dashboard_port = 81 # 管理后台的端口

然后运行

nohup ./frps -c ./frps.ini &> frps.log &
  1. 被代理服务器设置

首先上传证书

server_addr = 192.168.100.100                    #服务端的IP地址,好像也可以写域名,没试过
server_port = 7000                               #服务端端口
token = XXXXX   #验证信息,客户端需一致
local_ip = 127.0.0.1
log_file = ./frpc.log[test_http]                                      #Http服务,映射的是服务端http80端口
type = http                                      #服务方式
local_ip = 127.0.0.1                             #服务端ip,可写本地,局域网等做反向代理的ip
local_port = 8000                                #服务端端口
custom_domains = test.test.com                   #需要反向代理的域名,就是服务端要代理的域名[https]                                          #Https服务,映射的是服务端https443端口
type = https                                     #服务方式
local_ip = 127.0.0.1                             #服务端ip,可写本地,局域网等做反向代理的ip
local_port = 8000                                #服务端端口
custom_domains = test.test.com                   #需要反向代理的域名,就是服务端要代理的域名
# 以下为https新加的内容
plugin = https2http                             #将 https请求转换成http请求后再发送给本地服务
plugin_local_addr = 127.0.0.1:8000              #转换http后的端口
#证书相关配置
plugin_crt_path = /usr/local/frp_0.37.1_linux_amd64/5414927_jonion.top.pem #注意后缀
plugin_key_path = /usr/local/frp_0.37.1_linux_amd64/5414927_jonion.top.key #注意后缀
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp

保存,运行

nohup ./frpc -c ./frpc.ini &> frpc.log &

3、使用frp和Nginx进行https代理

这里说明一下原理:当你访问页面的时候,通过Nginx监听80端口(http)和443端口(https),所有http请求将重定向https请求。接着Nginx将请求转发给frp的http虚拟端口,然后最后将请求发给frp客户端。

  1. 设置Nginx

那么我们首先设置Nginx的配置文件,要是对Nginx不大懂的,可以看我写的另外一篇(虽然写的也很简单)。

上传证书

关闭Nginx服务器

systemctl stop nginx.service

编辑配置文件

    server {listen 443 ssl;ssl_certificate /etc/nginx/5414927_jonion.top.pem;       # 证书存放位置ssl_certificate_key /etc/nginx/5414927_jonion.top.key;     # 证书存放位置server_name jonion.top;   #自己的网站域名# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location / {proxy_pass  http://127.0.0.1:6666;     #frp设置的端口                              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-NginX-Proxy true;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_max_temp_file_size 0;proxy_redirect off;proxy_read_timeout 240s;}error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {root   /usr/share/nginx/html;}}server {listen 80; #监听80端口server_name jonion.top; #你自己的网站return 301 https://$server_name$request_uri; }

运行Nginx

systemctl restart nginx.service
  1. 设置代理服务器frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000
vhost_http_port = 6666   #http端口,被代理端与代理端进行http通讯
vhost_https_port = 6667
token = XXXXXdashboard_user = admin # 管理页面用户名
dashboard_pwd = admin@123 # 管理员密码
dashboard_port = 81

运行

nohup ./frps -c ./frps.ini &> frps.log &
  1. 设置被代理服务器frpc.ini
[common]
server_addr = 59.110.152.137
server_port = 7000
token = XXXXX
local_ip = 127.0.0.1
log_file = ./frpc.log[http]
type = http
local_ip = 127.0.0.1
local_port = 80
remote_port=6666
custom_domains =  jonion.top #你自己的域名

运行

nohup ./frpc -c ./frpc.ini &> frpc.log &

然后就可以访问啦,欢迎访问我的博客野生程序员

frp使用反向代理实现https协议相关推荐

  1. 阿里云个人站点基于nginx代理搭建https协议支持

    阿里云个人站点基于nginx代理搭建https协议支持 准备工作 购买免费个人版dv证书 配置nginx 开放防火墙端口 检测是否成功 准备工作 1.个人服务器 2.安装了ssl_moudle的ngi ...

  2. Oracle Cloud Shell(甲骨文云Shell)+ FRP(反向代理)实现防火墙穿透,内网端口映,射公网

    我们知道 "甲骨文云Shell" 有两种网络模式,一为:Public Network(公共网络),二为:Private Network(专用网络) 那么 "专用网络&qu ...

  3. nginx——反向代理,https加密证书,重定向

    反向代理 准备: 反向代理的实现要准备两台虚拟机,一台模拟真实服务器,一台作为代理服务器,在这两台虚拟机都安装nginx,详见nginx--版本的热省级和版本回退中的安装配置,两台虚拟机安装的参数一样 ...

  4. 【笔记】openwrt - nginx编译、配置反向代理(https下netdata不显示)

    文章目录 # 完整交叉编译 # 完整交叉编译ssl # SDK编译 # 配置反向代理 # 群晖内置nginx配置 # 完整交叉编译 参考:https://servertesa.wordpress.co ...

  5. nginx无证书代理http/https协议两种解决方案——筑梦之路

    原理:一般的nginx代理https请求是需要配置ssl证书信息的,走的是七层协议,而stream模块走的是四层协议,在没有第三方证书的情况下一般的nginx代理是无法满足需求的. 操作系统:cent ...

  6. haproxy 反向代理 tomcat (https、负载均衡)

    背景: 情况是这样的,我们要支撑高并发业务,需要多个web服务器来支持,如果一台机器只部署一个tomcat的话,那资源没有办法充分利用,所以我们的办法是在一台物理机部署数十个tomcat,前端使用ha ...

  7. Nginx反向代理实现HTTPS网站

    1.环境设置 这次是在windows环境下实现的,linux环境下步骤差不多 openssl的windows版本 下载地址: http://slproweb.com/products/Win32Ope ...

  8. frp内网穿刺/反向代理教程

    文章目录 前言 一.明确基本概念 二.frp下载与使用 1.云服务器做为Server端 2.GPU服务器做为Client端 3.远程访问 三.云服务器防火墙端口开启 前言    frp 是一个高性能的 ...

  9. 推荐一款新式开源的反向代理工具(FRP)

    本文推荐的FRP反向代理工具并非是2016年由 Golang 编程语言实现的 "fatedier/frp: A fast reverse proxy to help you expose a ...

最新文章

  1. Nat. Mach. Intell. | 利用条件循环神经网络生成特定性质分子
  2. python计算文件md5值_用python 正确计算大文件md5 值
  3. 本地安全沙箱最快解决办法
  4. mac os 安装 pkg-config
  5. ScrollView嵌套ListView后,进入页面不从顶部开始显示的问题解决
  6. Android插件化开发之运行未安装apk的activity
  7. python存文件代码_Python文件读写保存操作的示例代码
  8. 安卓饼状图设置软件_android开源图表库MPAndroidChart(曲线图、直方图、饼状图)...
  9. SAPUI5入门到精通5---MVC和数据绑定
  10. 安卓模拟器7.1版本32位系统xp框架安装方法
  11. 小米pro笔记本加装dw1820a无线网卡,完美装苹果macOS
  12. 货币php是什么,php做什么的【货币问答】- php做什么的所有答案 - 联合货币
  13. python-普通pdf的添加水印
  14. 千千静听滚动条消失的原因
  15. 数据可视化大屏 - 大屏云极简使用手册
  16. Davinci的异构多核间通信基础组件SysLink 2.0
  17. [学习Cython编程]Cython编程入门
  18. Servlet的路径配置
  19. [SDOI2009]学校食堂Dining(洛谷2157)
  20. 「数字电子技术基础」2.数制和码制

热门文章

  1. Vista系统安全设置
  2. 安装Bioconductor包和加载DESeq2包的报错问题解决
  3. ListView部分样式属性设置
  4. 升级系统后,虚拟机无法启动解决方案。
  5. 卧龙图说白酒:你认识白酒吗?值得一看的白酒知识
  6. iToolab UnlockGo for Mac,iOS设备解锁工具
  7. 手机网购怎少的了WiFi共享精灵
  8. win10家庭版升级为专业版详解 --- 0xC004C003问题详解
  9. BSC链上的智能合约
  10. Mac系统下安装RDM