创建的wss服务,报这个错误,中间有个代理服务器。不知道是哪里出了问题吗,求大神指教一下,感激不尽。
描述比较粗糙,具体也不好说,只能根据你的题示,分享一些这里可能要注意的细节: 1、确保SSL证书已经准备OK 2、SSL证书首先是和域名挂钩的,不要用IP:PORT; 3、前后端协议以及端口要一致; 4、代理服务器代理了SSL? 是的话,workerman那边不要设置SSL 5、另外搜社区类似问题很多以及看手册: http://doc.workerman.net/faq/secure-websocket-server.html
ssl配置好了的,已经可以https正常访问网站。没有使用ip访问,直接使用的域名加端口。倒数第二句什么意思?不是很明白。
而且我现在的这个测试站没有使用代理服务器,是直接使用的阿里云的服务器。老哥,求帮助
以为你使用了代理了呢,没有代理的话,workerman的 $worker->transport = 'ssl' 开启了吗? 你截图刚好看不到 proto 字段,这个字段就能反映出来。
可是我现在给你看的这个是阿里云的,没有使用代理服务器的测试站点。正式环境之前测试过了。不行,后面会考虑到你现在说的这个问题的。现在我这个测试站点,也是报这个错误,是为什么呢?而我现在主要是找不到错误的原因,就像是无头苍蝇一样。唉、求大神你带带我啊
@614:什么proto啊。这个是$worker->transport = 'ssl' 开启了的。使用ws去访问会提示这个错误要求使用wss去访问。
@614:我启动后没看到有什么proto 字段啊。就我图中的内容,其他的都没啦。
你确认设置OK了就好,按老大的来,升级下 workerman试试。
@614:怎么升级啊?。。。
@614:最好是能不升级解决这个问题,不然这个聊天客服功能又得改动了。
@614:中间有代理服务器强制跳转到https,在代理服务器上配置了ssl,在代码中就不要$worker->transport = 'ssl';了是不是?除此之外还有没有其他需要注意或者是弄其他的什么呢?
@5146: 1、是的。 2、关于注意事项本帖上基本上都提到了,另外就是官方手册上写的那一堆
@614:那如果我使用nginx代理wss,中间有个代理服务器,应该怎么配置?
[attach]1500[/attach]
[attach]1501[/attach]
[attach]1504[/attach]
status界面看不到, 直接用 debug 模式启动能看到 。
@614:我就是使用的调试模式启动的啊。真的没有唉。下面就是ctrl+c to stop 了。没有其他字段内容显示了啊,
升级下workerman
怎么了?版本太低了吗还是什么?
还有就是怎么升级哟,。。。。手册里没看到有相关的啊。
兄弟,这个升级就不要手册了,composer update workerman/workerman 或者重新到官网下载部署最新代码
@614:升级了之后很多东西是不是就得重新写了。她们之前把聊天室都写好了的。
@5146:目前3.5.12版本也是比较新的版本,理论上升级不会影响, 无论如何,先上测试环境呗,部署起来排查原因。
目前workerman版本都是互相兼容的,升级不影响业务。
另外提供下配置的详细信息。把配置全部截图出来,包括workerman配置,代理配置,域名
@1:这个测试环境么有使用代理服务器,使用的阿里云服务器,但是还是报相同的错误。
@1:还有就是为什么我以守护进程方式启动,提示我 -d 不是可选属性呢。会报错
[attach]1507[/attach] [attach]1506[/attach] [attach]1505[/attach] 这个测试环境没有使用代理。但是也报相同的错误。
截图workerman部分的配置
下面的run:all那些就不用截图了吧。
没设置 $ws_worker->transport = 'ssl';
这个设置了啊,我那边配置的https,然后这边有一个判断。stripos($this->root_path, 'https') === 0这样子判断是https协议,然后$this->is_ssl = true;后面判断如果成立$this->workermanEvent->is_ssl,然后设置$ws_worker->transport = 'ssl';这样子的逻辑。
测试环境下我没有加前面的false;之前你们说使用了代理服务器的话就不要设置ssl的嘛,我就把它加上了false;
[attach]1513[/attach] 测试环境是这样子的
我看也先别if else了,就显式的的把if里的代码拿出来直接跑,看啥情况。
@614:我先测试一个小dome试试。
@5146: 嗯,若找到最终的原因,给大家分享分享
[attach]1515[/attach]
[attach]1517[/attach]
[attach]1516[/attach]
总体来说就是哪里配置错误了或者没配置好。你可以弄个简单demo按照来做,有问题再把demo的配置 代码都贴出来。如果有用到nginx代理,nginx代理贴出来。贴问题的时候把用的手册哪个方法都贴出来。 你这个项目封装了一层,没办法确定你封装的有没有问题,是否导致漏了配置。
我刚才贴的图就是简单的demo,报 WebSocket connection to 'wss://www.firebox.vip:2347/' failed: Error in connection establishment: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH求教这又是什么意思什么错误啊?
https://www.baidu.com/s?ie=UTF-8&wd=ERR_SSL_VERSION_OR_CIPHER_MISMATCH
@1:所以这是我的ssl配置问题?
@1:那为什么页面可以通过https访问进去呢。发起wss请求才报这个错误
因为你没配置好啊
@5146: 帮你google到一篇文章,看了下,里面分好几种情况,需要点儿英文功底,你先试试看: https://www.deskdecode.com/err_ssl_version_or_cipher_mismatch/
@614:谷歌有翻译得功能,这个还是可以的。但是我看了下,也没找到啥有用的信息啊。
@1:我的配置是直接使用的宝塔直接自动生成的。
你这个项目封装了一层,不能确认是不是封装导致了漏掉了某些配置,你先不要用你的项目。
http://doc.workerman.net/faq/secure-websocket-server.html 拷贝手册里的例子第一种或者第二种方法先运行起来,有问题在群里贴出所有代码和配置。
@1:我使用demo测试还是报这个错误。
@1:下面贴了饿哦的代码及运行及前端请求。
[attach]1521[/attach]
[attach]1522[/attach]
[attach]1520[/attach]
没有设置$worker->transport = 'ssl';
另外启动界面里报错来看,openssl扩展也没装上。
报错的不是openssl、 那个ssl不加是因为中间加了一个代理服务器,加上我也试过的。
@1:奥,这个开始没发现,这个错误我看是警告,就没去管了
启动界面里第一行报错,openssl扩展没装成功
看到ws = new WebSocket('wss://www.firebox.vip:2347/');已经可以连接成功了
@1:这个测试环境我搭建好了,现在跑正式环境,中间有个代理服务器,所以有点麻烦
@1:所以要启动的话必须要安装这个动态库文件?我测试环境也没有这个openssl.so文件啊
@5146: 必须安装呢,pecl install openssl 或者 手动源码编译安装下openssl扩展
@614:这个openssl扩展安装了的,php -m都能看到,只是没有生成这个openssl.so文件,这个文件必须的吗?
怎么感觉你机器上有多个版本的PHP呢,不管是几个,你自己确认下,也不管是几个,每一个扩展都对应相应版本的PHP,总体思路是这样的: 假如使用的是 /path/to/php ,那么
@614:这段命令执行之后打印了一个openssl。其他就没了,这样算是安装扩展成功了吗?
@614:但是我没有找到这个openssl.so.文件,php.ini里也没有开启这个扩展,我的测试环境也是这样的,但是测试环境可以用,没问题,就正式环境搞不定了,中间有个代理服务器我就很麻木了。
@5146: /path/to/php -m | grep openssl 如果输出了一个openssl, 并且同时也没有报告任何的warning, 则代表openssl扩展成功安装。
@614:对啊,然后我又测试了,因为有个代理服务器,所以我测试了加ssl,和不加ssl,还是报这个错误。还是没有解决啊。
[attach]1537[/attach] 还有就是为什么我守护进程启动的话就提示选项不存在呢。
看上去是使用了集成wokerman后的 symfony 的命令行启动方式,这个不是 workerman的问题,得看 symfony手册呢。
@614:好
@614:还有个问题就是,我改了代码或者配置之后,需要重启workman服务吗?
@5146: 你这么一问: 1、我建议你得好好看手册,效率会大大提高呢。 2、改代码必须重启workerman, 当然有时候只需 reload , 具体为啥看手册。
@614:我用的调试模式也要重启的吗?我还以为只是守护进程启动的需要重启。
@5146: 无论是哪种模式,都要重启。
描述比较粗糙,具体也不好说,只能根据你的题示,分享一些这里可能要注意的细节:
1、确保SSL证书已经准备OK
2、SSL证书首先是和域名挂钩的,不要用IP:PORT;
3、前后端协议以及端口要一致;
4、代理服务器代理了SSL? 是的话,workerman那边不要设置SSL
5、另外搜社区类似问题很多以及看手册: http://doc.workerman.net/faq/secure-websocket-server.html
ssl配置好了的,已经可以https正常访问网站。没有使用ip访问,直接使用的域名加端口。倒数第二句什么意思?不是很明白。
而且我现在的这个测试站没有使用代理服务器,是直接使用的阿里云的服务器。老哥,求帮助
以为你使用了代理了呢,没有代理的话,workerman的 $worker->transport = 'ssl' 开启了吗?
你截图刚好看不到 proto 字段,这个字段就能反映出来。
可是我现在给你看的这个是阿里云的,没有使用代理服务器的测试站点。正式环境之前测试过了。不行,后面会考虑到你现在说的这个问题的。现在我这个测试站点,也是报这个错误,是为什么呢?而我现在主要是找不到错误的原因,就像是无头苍蝇一样。唉、求大神你带带我啊
@614:什么proto啊。这个是$worker->transport = 'ssl' 开启了的。使用ws去访问会提示这个错误要求使用wss去访问。
@614:我启动后没看到有什么proto 字段啊。就我图中的内容,其他的都没啦。
你确认设置OK了就好,按老大的来,升级下 workerman试试。
@614:怎么升级啊?。。。
@614:最好是能不升级解决这个问题,不然这个聊天客服功能又得改动了。
@614:中间有代理服务器强制跳转到https,在代理服务器上配置了ssl,在代码中就不要$worker->transport = 'ssl';了是不是?除此之外还有没有其他需要注意或者是弄其他的什么呢?
@5146:
1、是的。
2、关于注意事项本帖上基本上都提到了,另外就是官方手册上写的那一堆
@614:那如果我使用nginx代理wss,中间有个代理服务器,应该怎么配置?
[attach]1500[/attach]
[attach]1501[/attach]
[attach]1504[/attach]
status界面看不到, 直接用 debug 模式启动能看到 。
@614:我就是使用的调试模式启动的啊。真的没有唉。下面就是ctrl+c to stop 了。没有其他字段内容显示了啊,
升级下workerman
怎么了?版本太低了吗还是什么?
还有就是怎么升级哟,。。。。手册里没看到有相关的啊。
兄弟,这个升级就不要手册了,composer update workerman/workerman 或者重新到官网下载部署最新代码
@614:升级了之后很多东西是不是就得重新写了。她们之前把聊天室都写好了的。
@5146:目前3.5.12版本也是比较新的版本,理论上升级不会影响, 无论如何,先上测试环境呗,部署起来排查原因。
目前workerman版本都是互相兼容的,升级不影响业务。
另外提供下配置的详细信息。把配置全部截图出来,包括workerman配置,代理配置,域名
@1:这个测试环境么有使用代理服务器,使用的阿里云服务器,但是还是报相同的错误。
@1:还有就是为什么我以守护进程方式启动,提示我 -d 不是可选属性呢。会报错
[attach]1507[/attach]
[attach]1506[/attach]
[attach]1505[/attach]
这个测试环境没有使用代理。但是也报相同的错误。
截图workerman部分的配置
下面的run:all那些就不用截图了吧。
没设置 $ws_worker->transport = 'ssl';
这个设置了啊,我那边配置的https,然后这边有一个判断。stripos($this->root_path, 'https') === 0这样子判断是https协议,然后$this->is_ssl = true;后面判断如果成立$this->workermanEvent->is_ssl,然后设置$ws_worker->transport = 'ssl';这样子的逻辑。
测试环境下我没有加前面的false;之前你们说使用了代理服务器的话就不要设置ssl的嘛,我就把它加上了false;
[attach]1513[/attach]
测试环境是这样子的
我看也先别if else了,就显式的的把if里的代码拿出来直接跑,看啥情况。
@614:我先测试一个小dome试试。
@5146: 嗯,若找到最终的原因,给大家分享分享
[attach]1515[/attach]
[attach]1517[/attach]
[attach]1516[/attach]
总体来说就是哪里配置错误了或者没配置好。你可以弄个简单demo按照来做,有问题再把demo的配置 代码都贴出来。如果有用到nginx代理,nginx代理贴出来。贴问题的时候把用的手册哪个方法都贴出来。
你这个项目封装了一层,没办法确定你封装的有没有问题,是否导致漏了配置。
我刚才贴的图就是简单的demo,报 WebSocket connection to 'wss://www.firebox.vip:2347/' failed: Error in connection establishment: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH求教这又是什么意思什么错误啊?
https://www.baidu.com/s?ie=UTF-8&wd=ERR_SSL_VERSION_OR_CIPHER_MISMATCH
@1:所以这是我的ssl配置问题?
@1:那为什么页面可以通过https访问进去呢。发起wss请求才报这个错误
因为你没配置好啊
@5146: 帮你google到一篇文章,看了下,里面分好几种情况,需要点儿英文功底,你先试试看:
https://www.deskdecode.com/err_ssl_version_or_cipher_mismatch/
@614:谷歌有翻译得功能,这个还是可以的。但是我看了下,也没找到啥有用的信息啊。
@1:我的配置是直接使用的宝塔直接自动生成的。
你这个项目封装了一层,不能确认是不是封装导致了漏掉了某些配置,你先不要用你的项目。
http://doc.workerman.net/faq/secure-websocket-server.html
拷贝手册里的例子第一种或者第二种方法先运行起来,有问题在群里贴出所有代码和配置。
@1:我使用demo测试还是报这个错误。
@1:下面贴了饿哦的代码及运行及前端请求。
[attach]1521[/attach]
[attach]1522[/attach]
[attach]1520[/attach]
没有设置$worker->transport = 'ssl';
另外启动界面里报错来看,openssl扩展也没装上。
报错的不是openssl、
那个ssl不加是因为中间加了一个代理服务器,加上我也试过的。
@1:奥,这个开始没发现,这个错误我看是警告,就没去管了
启动界面里第一行报错,openssl扩展没装成功
看到ws = new WebSocket('wss://www.firebox.vip:2347/');已经可以连接成功了
@1:这个测试环境我搭建好了,现在跑正式环境,中间有个代理服务器,所以有点麻烦
@1:所以要启动的话必须要安装这个动态库文件?我测试环境也没有这个openssl.so文件啊
@5146: 必须安装呢,pecl install openssl 或者 手动源码编译安装下openssl扩展
@614:这个openssl扩展安装了的,php -m都能看到,只是没有生成这个openssl.so文件,这个文件必须的吗?
怎么感觉你机器上有多个版本的PHP呢,不管是几个,你自己确认下,也不管是几个,每一个扩展都对应相应版本的PHP,总体思路是这样的:
假如使用的是 /path/to/php ,那么
@614:这段命令执行之后打印了一个openssl。其他就没了,这样算是安装扩展成功了吗?
@614:但是我没有找到这个openssl.so.文件,php.ini里也没有开启这个扩展,我的测试环境也是这样的,但是测试环境可以用,没问题,就正式环境搞不定了,中间有个代理服务器我就很麻木了。
@5146: /path/to/php -m | grep openssl 如果输出了一个openssl, 并且同时也没有报告任何的warning, 则代表openssl扩展成功安装。
@614:对啊,然后我又测试了,因为有个代理服务器,所以我测试了加ssl,和不加ssl,还是报这个错误。还是没有解决啊。
[attach]1537[/attach]
还有就是为什么我守护进程启动的话就提示选项不存在呢。
看上去是使用了集成wokerman后的 symfony 的命令行启动方式,这个不是 workerman的问题,得看 symfony手册呢。
@614:好
@614:还有个问题就是,我改了代码或者配置之后,需要重启workman服务吗?
@5146: 你这么一问:
1、我建议你得好好看手册,效率会大大提高呢。
2、改代码必须重启workerman, 当然有时候只需 reload , 具体为啥看手册。
@614:我用的调试模式也要重启的吗?我还以为只是守护进程启动的需要重启。
@5146: 无论是哪种模式,都要重启。