altairwei / WizNotePlus

A community-driven cross-platform note-taking client.
https://altairwei.github.io/WizNotePlus/
Other
578 stars 87 forks source link

Docker 部署服务端与 WizNotePlus 客户端的 SSL 握手错误 #249

Closed ferocknew closed 1 year ago

ferocknew commented 1 year ago

如图

image
ferocknew commented 1 year ago

mac 端客户端

ferocknew commented 1 year ago

windows 客户端无此问题

altairwei commented 1 year ago

WizNotePlus v2.11 试过吗?也有这个问题?

altairwei commented 1 year ago

参考 https://github.com/altairwei/WizNotePlus/issues/242 排查一下你的电脑。

ferocknew commented 1 year ago
image
ferocknew commented 1 year ago

现象应该是一样的,但是,原因应该不一样。 我抓了一下日志,想知道app 的log 在macos 下,那个路径?

altairwei commented 1 year ago

~/.wiznote/log 默认在 HOME 目录下

ferocknew commented 1 year ago
image
ferocknew commented 1 year ago

现象的确是一样的,但是这个url 我直接curl 是可以获取到数据的。。。

ferocknew commented 1 year ago
image
altairwei commented 1 year ago

你的 docker 部署在本地还是云端?HTTP 还是 HTTPS 协议?

ferocknew commented 1 year ago

docker 部署在服务器上,通过nginx 反向代理https

altairwei commented 1 year ago

你换台电脑测试一下,看看是否为网络问题。或者你私信我一个测试账号,我来试试。

ferocknew commented 1 year ago

同一台mac ,官方客户端无问题,参考上面的截图。 同一个wifi 下,windows 电脑,windows 版本的 WizNotePlus 2.12.0 版本,无问题。

altairwei commented 1 year ago

同一个wifi 下,windows 电脑,windows 版本的 WizNotePlus 2.12.0 版本,无问题。

按照这个测试,有可能是你 macOS 本机的网络设置哪里出了问题,毕竟 WizNotePlus 的 Windows 版和 macOS 版本是相同代码。

altairwei commented 1 year ago

检查下是否有全局代理之类的。

ferocknew commented 1 year ago
image
altairwei commented 1 year ago

WizNotePlus 登录框也没设置代理吧?

ferocknew commented 1 year ago

没有全局代理,直接 wget 也无问题。 mac 也重启过了。

您这边是否可以考虑一下有网络解析的缓存?

ferocknew commented 1 year ago
image
ferocknew commented 1 year ago

登录框怎么设置代理?

altairwei commented 1 year ago

奇怪,macOS 端没有显示代理设置的 UI,那就不用管登录框的代理了。

altairwei commented 1 year ago

你会抓包吗?抓一下 WizNotePlus 登录全过程,看看具体发生了什么网络错误。

ferocknew commented 1 year ago

macos 用什么工具抓app 的包?告诉我一个关键词,我试试

altairwei commented 1 year ago

macos 用什么工具抓app 的包?告诉我一个关键词,我试试

我没有太多 macOS 使用经验,你试试 Fiddler Classic 行不行。

ferocknew commented 1 year ago
image
ferocknew commented 1 year ago

我换了一个用户名和密码,反复提示用户名和密码错误。 实际上,用户名和密码是对的。 日志如截图

altairwei commented 1 year ago

我看了下代码,发现很久以前官方对 macOS 端做了这个处理:

    //FIXME: 在Mac osx安全更新之后存在ssl握手问题,此处进行特殊处理
    QSslConfiguration conf = QSslConfiguration::defaultConfiguration();
    conf.setPeerVerifyMode(QSslSocket::VerifyNone);
    QSslConfiguration::setDefaultConfiguration(conf);

有可能与此相关。

ferocknew commented 1 year ago
image
ferocknew commented 1 year ago

用的是 let 证书,虽然快到期了,但是至少还没过期

altairwei commented 1 year ago

抓包结果是最直接的,可以确定是否为 SSL 问题,你试过了吗?

altairwei commented 1 year ago

等我给你编译一个注释掉那段 SSL 代码的客户端版本试试。

ferocknew commented 1 year ago
image
altairwei commented 1 year ago

等这个 https://github.com/altairwei/WizNotePlus/actions/runs/6105454811 编译完了,去 Artifacts 里面下载客户端。

ferocknew commented 1 year ago

这个截图忽略,是抓包软件我还需要设置一下

ferocknew commented 1 year ago
image
ferocknew commented 1 year ago

果然是SSL 的问题,但是,LET 证书在macos 下其他情况使用毫无问题啊

altairwei commented 1 year ago

等这个 https://github.com/altairwei/WizNotePlus/actions/runs/6105454811 编译完了,去 Artifacts 里面下载客户端。

等这个。不是你的证书问题。

altairwei commented 1 year ago

@ferocknew 怎么样,试过这个 hotfix 版本了吗?

ferocknew commented 1 year ago
image
ferocknew commented 1 year ago

试过了,还是一样

ferocknew commented 1 year ago

辛苦了,我继续用官方客户端吧。 您这边如果有时间再看看这个问题,感谢

我认为,应该有网络缓存,或者证书缓存之类的

altairwei commented 1 year ago

不对,你应该需要升级 Nginx 或者相应的 SSL 库,以支持 TLS v1.2

altairwei commented 1 year ago
image

给我看一下 Notes 里面的消息全文。

ferocknew commented 1 year ago

The remote SSL server rejected the connection. The server may require a specific certificate or cipher not supported by Charles.

但是,抓包代理的证书我已经信任了

image
altairwei commented 1 year ago

The remote SSL server rejected the connection. The server may require a specific certificate or cipher not supported by Charles.

但是,抓包代理的证书我已经信任了

image

这个不是证书问题,是服务端不支持客户端提出的 TLS 版本,比如你图片中的 TLS v1.2。

altairwei commented 1 year ago

升级你服务端的 Nginx 或者 OpenSSL 也许能解决这个问题。或者我在 WizNotePlus 中人为降低 TLS 支持版本。

ferocknew commented 1 year ago

我知道了,我把TLS 升级为 1.3 了。。。。

ferocknew commented 1 year ago

问题解决了,把 1.2 加入反代协议就行了,感谢!

altairwei commented 1 year ago

我知道了,我把TLS 升级为 1.3 了。。。。

哦,原来是你服务端 TLS 版本太高了。