fatedier / frp

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Apache License 2.0
86.46k stars 13.37k forks source link

TCP转发支持HTTPS #2874

Closed zyppe closed 2 years ago

zyppe commented 2 years ago

Describe the feature request

我不确定这个功能是否支持。有两个地方希望能直接使用HTTPS。我现在域名已经完成了HTTPS签名了,但是FRP管理页面以及使用TCP转发的页面都无法使用HTTPS。

Describe alternatives you've considered

举个例子:虽然管理页面运行在7500端口,但因为我的域名已经进行签名了,按道理可以用https://域名:7500 访问页面的,实际上报错。我也尝试过配置,以失败告终。另外,比如我需要将本地运行在8888端口的网页暴露在公网上,运行在40000端口,实际上用TCP配置就行,http://域名:40000端口 是可以访问,但是不能使用 https://域名:40000 。还请告诉我这个是没有实现还是我配置有问题。 如果可以支持,主要的优势是密码等传输可以在TLS下。另外只需要一个子域名有证书就可以反复复用他的证书。

Affected area

Becods commented 2 years ago

dashboard暂时不支持https (应该) https请本地反代后使用tcp映射出去

zyppe commented 2 years ago

后者我不是需要本地的https,而是使用服务器已经有的https

Becods commented 2 years ago

frpc only forwards requests to local TCP or UDP ports by default.

frp的tcp转发目前只支持纯转发,https请自行解决 或者使用http2https插件

MMMMMoris commented 2 years ago

我的理解是,你的https请求需要本地服务进行解密,而你的web的请求要么是通过nginx要么是apache来解密,你访问https://域名:7500 的请求用什么解密?如果没有的话当然会出错。你可以尝试在nginx里面进行转发服务器设置,也由nginx解密https请求,然后将请求转发到7500端口。以上个人实践成功后的意见。

MMMMMoris commented 2 years ago

我的理解是,你的https请求需要本地服务进行解密,而你的web的请求要么是通过nginx要么是apache来解密,你访问https://域名:7500 的请求用什么解密?如果没有的话当然会出错。你可以尝试在nginx里面进行转发服务器设置,也由nginx解密https请求,然后将请求转发到7500端口。以上个人实践成功后的意见。

请注意,你的DNS解析服务还必须支持对7500端口的https解析才能够成功访问,例如clodflare的https解析服务只支持443、8443等端口

github-actions[bot] commented 2 years ago

Issues go stale after 30d of inactivity. Stale issues rot after an additional 7d of inactivity and eventually close.

liov commented 2 years ago

我的理解是,你的https请求需要本地服务进行解密,而你的web的请求要么是通过nginx要么是apache来解密,你访问https://域名:7500 的请求用什么解密?如果没有的话当然会出错。你可以尝试在nginx里面进行转发服务器设置,也由nginx解密https请求,然后将请求转发到7500端口。以上个人实践成功后的意见。

他的意思所有流量直接转发到本地解密,不需要中间解密

github-actions[bot] commented 2 years ago

Issues go stale after 30d of inactivity. Stale issues rot after an additional 7d of inactivity and eventually close.