frp 的 ssl 应该怎样配置才安全呢 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制贴 AI 生成的内容
ucyo
V2EX    程序员

frp 的 ssl 应该怎样配置才安全呢

  •  
  •   ucyo 2023-09-12 12:11:02 +08:00 2823 次点击
    这是一个创建于 788 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我这样设置的:
    frps 服务器端和 frpc 客户端都安装的 1panle 。

    frps 服务端设置:
    vhost_http_port = 1180
    vhost_https_port = 1443

    frps 服务端反代:
    location ^~ / {
    proxy_pass http://127.0.0.1:1180;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    add_header X-Cache $upstream_cache_status;
    }
    安装了 ssl ,可以正常用 https 访问。

    frpc 客户端这样设置的:
    [网站名称]
    type=http
    custom_domains = 域名
    local_ip=127.0.0.1
    local_port=80
    use_encryption=true
    use_compression=true

    frps 服务端和 frpc 端互相通信时并没有 ssl 。
    这样安全吗?
    应该怎样配置才最安全呢?
    14 条回复    2025-03-19 02:44:29 +08:00
    kkk9
        1
    kkk9  
       2023-09-12 12:14:46 +08:00
    服务端和客户端之间通信是走 server 端口,你反代的是 vhost( http)
    kkk9
        2
    kkk9  
       2023-09-12 12:16:29 +08:00
    [common] 部分的配置才是负责 C/S 通信的,具体可以看官方文档 - 身份认证

    https://gofrp.org/docs/features/common/authentication/

    其实设置好 token 就行了。
    ucyo
        3
    ucyo  
    OP
       2023-09-12 12:23:53 +08:00
    @kkk9 token 是设置了的,frps 服务端和 frpc 客户端之间不用 ssl ,是吧
    mikaelson
        4
    mikaelson  
       2023-09-12 12:24:28 +08:00
    我直接就 token+端口,完了。。。
    ysc3839
        5
    ysc3839  
       2023-09-12 12:39:23 +08:00 via Android
    我个人选择用 WireGuard ,frp 那个协议很难说是否真的安全。
    kkk9
        6
    kkk9  
       2023-09-12 14:21:44 +08:00
    @ucyo #3 请翻阅 frp 源码,ssl 也不见得安全啊
    gogogo2000
        7
    gogogo2000  
       2023-09-12 14:27:46 +08:00
    想要让 frp 本身的控制协议走 ssl ,只需要设置 tls_enable 即可。

    https://gofrp.org/docs/features/common/network/network-tls/
    gogogo2000
        8
    gogogo2000  
       2023-09-12 14:29:11 +08:00
    似乎应该是 tls_only ,文档中有些摇摆
    abonan
        9
    abonan  
       2023-09-12 16:41:15 +08:00   1
    不用配 vhost 、http 之类的。首先自签一个 CA 证书,再用这个 CA 证书签发一个证书,该证书要配上 subjectAltName=IP:0.0.0.0 (服务端 IP )。

    服务端配置 common 块放上刚刚签的证书和私钥,客户端配置 common 块开启 tls_enable ,开启 CA 信任,信任刚开始的自签 CA 证书,这样就保证 tls 传输是安全的,只有该 CA 签发的证书是可信的,防止中间人攻击,当然可以双向开启 CA 验证,可以看文档。然后客户端直接 type=tcp 转发 http 端口就行了
    yaott2020
        10
    yaott2020  
       2023-09-12 16:46:43 +08:00 via Android
    同楼上,搞个 TLS 双向认证,谁也看不到
    nmap
        11
    nmap  
       2023-09-12 19:12:32 +08:00
    双向认证开启,其他随意
    lovelylain
        12
    lovelylain  
       2023-09-12 20:12:29 +08:00 via Android
    自签名证书,双向认证
    tls_enable = true
    tls_cert_file = ../cert/client.crt
    tls_key_file = ../cert/client.key
    tls_trusted_ca_file = ../cert/ca.crt
    服务端同理且设置 tls_Only= true
    Rebron1900
        13
    Rebron1900  
       251 天前
    @abonan 大佬,我在 c 端 s 端都用 acme.sh 生成的泛域名证书时提示 `RR_SSL_UNRECOGNIZED_NAME_ALERT`,是不是只能用 openssl 生成的证书,且不是泛域名证书呢?
    abonan
        14
    abonan  
       235 天前
    @Rebron1900 应该是 frp 通信的时候是直接用 IP 而不是用域名连接,没有域名的 SNI 自然就报错无法识别了。用自签 IP 证书就可以了,签一个 10 年的,只要客户端只信任自签的 CA 证书就不存在中间人劫持了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2184 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 01:01 PVG 09:01 LAX 17:01 JFK 20:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86