mirror of
https://github.com/fatedier/frp.git
synced 2026-05-15 16:15:49 -06:00
[GH-ISSUE #86] https 似乎无法正常工作 #37
Labels
No labels
In Progress
WIP
WaitingForInfo
bug
doc
duplicate
easy
enhancement
future
help wanted
invalid
lifecycle/stale
need-issue-template
need-usage-help
no plan
proposal
pull-request
question
todo
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/frp#37
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @mengbingrock on GitHub (Aug 22, 2016).
Original GitHub issue: https://github.com/fatedier/frp/issues/86
Originally assigned to: @maodanp on GitHub.
首先感谢开发者。
经测试ssh和80端口的http协议都正常工作。可是443端口的https协议似乎有问题。
客户端
服务端 frps.ini
尝试https连接似乎客户端和服务端都没有感知:
frpc.log
frps.log
不知道domain那里我是不是写错了,或者问题出在我本地的路由器,有端口转发。可是http并未出问题。
谢谢
@mengbingrock commented on GitHub (Aug 22, 2016):
很抱歉我是新手,不是很熟悉markdown语法。上面的格式有问题。
@maodanp commented on GitHub (Aug 22, 2016):
frpc的机器是否生成了证书?通过curl能否正常访问到frpc的443端口?HTTPS的域名是什么?HTTPS访问,希望能够开启debug的日志模式,方便提供给我们更多的日志信息@mengbingrock commented on GitHub (Aug 22, 2016):
感谢 @maodanp 提供的思路,发现是我的self-asinged证书的锅。本地是owncloud服务器,在内网通过浏览器访问时,会有证书警告,点击继续可以正常访问。
生成证书的时候,域名填写的就是我的私有ip地址:192.168.1.3
在本地 curl有如下结果
于是加上
-k选项:似乎是正常的。
curl frps 的https://ip 的结果如下:
如果使用命令
openssl s_client -connect frps的ip :443 -prexit,在对本地私有ip执行执行同样的命令:
可以看到完整的证书信息,其中我删除了一些个人信息字段。
也许将证书替换成正规的证书可以解决,是否可以理解成frps对证书的要求比较严格?
(看到格式还是不对,感谢你们帮我改格式,我看去看看上面的帖子是怎么改的,看能不能改好。可是我加 ```ini 还是没有效果啊)
@maodanp commented on GitHub (Aug 23, 2016):
首先生成证书的域名需要指定(假设为
www.example.com)。 假设frps的IP地址144.172.70.47、frpc的IP地址192.168.1.3准确配置方式是在访问客户端的host中配置:frpc.ini配置如下:另外
frps对证书是不感知的,只是将数据透传。关键是你访问的域名需要与生成证书的域名与配置文件中的域名一致@mengbingrock commented on GitHub (Aug 23, 2016):
谢谢,我将
local_ip = 127.0.0.1改成证书对应的域名:
local_ip = 192.168.1.3之后可以成功访问https啦!
感谢开发者的耐心回答。
以前试用过一个国内程序员搭建的ngrok服务器,出于安全性和稳定性想着也不是长久之计。今天使用这个解决了困扰我好久的问题。非常感谢!
顺问如何make donation呢?
@mengbingrock commented on GitHub (Aug 23, 2016):
发现一个及其奇怪的问题,用safari浏览器没问题,Chrome或其他电脑上的IE等都不行。无法理解是什么原因。
http协议则不会出现这样的问题。
我没有在hosts 文件中加入
144.172.70.47 192.168.1.3不知道这样写是否合法,有可能是这里出问题。
curl 的结果还是报错
curl: (35) Server aborted the SSL handshake@maodanp commented on GitHub (Aug 24, 2016):
不能通过
hosts中增加IP之间的映射关系,需要通过定义域名方式实现。我这边也测试过你的情况,发现浏览器对
HTTPS协议支持是不同,fprs内部需要解析HTTPS的serverName, 如果解析不到就直接返回失败了。以下提供两种解决方式:
tcp连接,这样就不需要域名了。方法
2的配置如下:frpc主要配置如下frps主要配置如下:当然,frps中的vhost_https_port需要改端口,防止端口冲突。