当前位置:   article > 正文

使用新版frp为多个内网web服务添加https支持_frp windows客户端配置ssl证书

frp windows客户端配置ssl证书

准备

  1. 二级域名一个(example.com)
  2. 云服务器一台(假如ip为:server-ip)
  3. 申请一个或多个三级域名的 SSL 证书,并下载为 crt/key 格式证书
    1. domain1.example.com
    2. domain2.example.com
    3. domain3.example.com
  4. 将申请SSL证书的相关三级域名 A记录 DNS解析指向 server-ip
  5. 一个或多个本地内网web服务

下载对应frp压缩包

前往 Frp Github Releases 页面下载对应的压缩包:

请添加图片描述

客户端amd64的windows系统,服务器也是amd64架构。

服务端配置

使用wget下载对应的压缩包

wget https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_linux_amd64.tar.gz
tar -zxvf frp_0.53.2_linux_amd64.tar.gz
cd frp_0.53.2_linux_amd64
vim frps.toml
  • 1
  • 2
  • 3
  • 4
  • 编辑 frps.toml

    bindPort = 7000
    vhostHTTPSPort = 443
    auth.token = "passwordAuthToken" # 更改为自己的密码,用于客户端与服务端连接的密钥
    webServer.addr = "0.0.0.0"  
    # 服务端web管理页面端口以及账号密码
    webServer.port = 7500
    webServer.user = "admin"         
    webServer.password = "admin"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

运行

./frps -c frps.toml
  • 1

可以访问 http://server-ip:7500 登录管理面板 账号密码均为设置 admin

客户端配置

解压下载好的 frp_0.53.2_windows_amd64.zip

cd frp_0.53.2_windows_amd64
mkdir ssl
cd ssl
mkdir domain1.example.com
mkdir domain2.example.com
mkdir domain3.example.com
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

将下载好的 SSL 证书下载,放到 ssl 文件夹对应的域名文件夹下

以阿里云域名SSL证书为例,下载下来的 crt/key 证书如图:

请添加图片描述

内网服务域名穿透对应如下

domain1.example.com  --> 127.0.0.1:3000
domain2.example.com  --> 127.0.0.1:4000
domain3.example.com  --> 192.168.0.93:5000  # 局域网web服务,非本机服务
  • 1
  • 2
  • 3
  • 编辑 frpc.toml

    serverAddr = "server-ip"
    serverPort = 7000
    auth.token = "passwordAuthToken"
    
    # 客户端管理面板
    webServer.addr = "127.0.0.1"
    webServer.port = 7400
    webServer.user = "admin"
    webServer.password = "admin"
    
    [[proxies]]
    name = "domain1_https"                  # 名称,随意填,与后面的name不可重复
    type = "https"
    customDomains = ["domain1.example.com"] # 需要指向的域名,后面运行后使用这个域名访问
    [proxies.plugin]
    type = "https2http"
    localAddr = "127.0.0.1:3000"                                         # 需要穿透的本地web服务
    crtPath = "./ssl/domain1.example.com/domain1.example.com_public.crt" # 对应域名的 crt 证书
    keyPath = "./ssl/domain1.example.com/domain1.example.com.key"        # 对应域名的 key 证书
    hostHeaderRewrite = "127.0.0.1"                                      # 与 localAddr 的 ip 对应即可
    requestHeaders.set.x-from-where = "frp"
    
    [[proxies]]
    name = "domain2_https"
    type = "https"
    customDomains = ["domain2.example.com"]
    [proxies.plugin]
    type = "https2http"
    localAddr = "127.0.0.1:4000"
    crtPath = "./ssl/domain2.example.com/domain2.example.com_public.crt"
    keyPath = "./ssl/domain2.example.com/domain2.example.com.key"
    hostHeaderRewrite = "127.0.0.1"
    requestHeaders.set.x-from-where = "frp"
    
    [[proxies]]
    name = "domain3_https"
    type = "https"
    customDomains = ["domain3.example.com"]
    [proxies.plugin]
    type = "https2http"
    localAddr = "192.168.0.93:5000"        # 局域网 web 服务
    crtPath = "./ssl/domain3.example.com/domain3.example.com_public.crt"
    keyPath = "./ssl/domain3.example.com/domain3.example.com.key"
    hostHeaderRewrite = "192.168.0.93"
    requestHeaders.set.x-from-where = "frp"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

运行

./frpc.exe -c frpc.toml
  • 1

访问

浏览器输入 https://domain1.example.com 即可使用https协议正常访问

请添加图片描述

我的博客,欢迎前往: https://blog.ivwv.site/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/506169
推荐阅读
相关标签
  

闽ICP备14008679号