求助,web端集成音视频的时候,由http改为https时报错

zyh670716 6天前 175

其他接口都是正常的,只有wss报错 配置如下 im-server的api/version可以正常响应和https://im.zboory.com也返回ok了

最新回复 (36)
  • x86 6天前
    引用 2
    > 检查项
    > 1. 访问`http://im.example.com/api/version`,看是否返回一个 json 文本
    > 2. 用这个[在线工具](http://docs.wildfirechat.cn/web/wstool/index.html),检查 `ws://im.example.com:8083` 是否工作正常

    这两个检查项正常吗?
  • zyh670716 5天前
    引用 3
    x86 > 检查项 > 1. 访问`http://im.example.com/api/version`,看是否返回一个 json 文本 > 2. 用这个[在线工具](http://do ...
    1是正常的,
    2因为是内网研发,所以没办法用这个在线工具
    现在只有wss接口一直调不通
  • x86 5天前
    引用 4
    我们怀疑ws也没有调通
  • zyh670716 4天前
    引用 5
    x86 我们怀疑ws也没有调通
    切换到wss之前,ws是通的,http是可以正常用,只是需要音视频功能的时候需要切到wss
  • x86 4天前
    引用 6
    ws 是通的,那你截图看下
  • zyh670716 4天前
    引用 7

    刚刚发现一个很神奇的现象,ws 连接,在部署 vue-chat 电脑的浏览器上可以正常访问,用别的电脑的浏览器访问不了,而且 ws 连接有两个一个是 localhost:8013,一个是 im.zboory.com

    上传的附件:
  • zyh670716 4天前
    引用 8
  • x86 4天前
    引用 9
    zyh670716 还有这张
    看你们这儿把 websocket 端口改成了 8013,为啥 1 楼不转发到 8013,而是转发到了 8083 端口?
  • zyh670716 4天前
    引用 10
    x86 看你们这儿把 websocket 端口改成了 8013,为啥 1 楼不转发到 8013,而是转发到了 8083 端口?
    刚改成8083了,一样可以连上,但是wss还是连不上,这个端口应该不影响吧,8013改成8083是因为给的教程是8083
  • x86 4天前
    引用 11
    zyh670716 刚刚发现一个很神奇的现象,ws 连接,在部署 vue-chat 电脑的浏览器上可以正常访问,用别的电脑的浏览器访问不了,而且 ws 连接有两个一个是 localhost:8013,一个是 im.zbo ...
    ws://localhost:8013/ws 这个不是我们的
  • x86 4天前
    引用 12
    zyh670716 刚改成8083了,一样可以连上,但是wss还是连不上,这个端口应该不影响吧,8013改成8083是因为给的教程是8083
    端口不影响,但是要能对上,现在前后给的信息,对不上,很难排查。

    你把 ws://im.zboory.com:8083 能连上,wss://im.zboory.com:5017 连不上的截图都附上,然后把 im-server 及 nginx 的配置也附上,注意把涉密的信息用***代替。
  • zyh670716 4天前
    引用 13

    麻烦帮忙看看哪里有问题

  • zyh 4天前
    引用 14

    附件上传不上去,怎么办,能否留个联系方式

  • x86 4天前
    引用 16

    针对上面的配置:

    1. web.conf 里面 listen 443; 应当是 listen 443 ssl; ,但这和现在的问题应当没关系
    2. web.conf,im-http.conf/im-wss.conf 里面,server_name 不同,并且不是同一个主域名下的不同子域名,但是 ssl_certificate 相关配置是想通的。如果你的证书不是多域名证书的话,这意味配置错误了,请确认是否用错了。

      正常,每个 server_name 会对应自己的证书;如果是同一个主域名下的不同子域名,也可以是相同的通配符证书。

    3. 请确认是否正常监听 5013 端口
  • zyh670716 3天前
    引用 17
    x86 针对上面的配置: 1. web.conf 里面 `listen 443;` 应当是 `listen 443 ssl;` ,但这和现在的问题应当没关系 2. web.conf,im-http.con ...
    如果不是多域证书的话应该怎么配置呢,不能用自签证书吗,2不知道要怎么操作
  • x86 3天前
    引用 18
    zyh670716 如果不是多域证书的话应该怎么配置呢,不能用自签证书吗,2不知道要怎么操作
    可以每个域名用一个自签证书
  • x86 3天前
    引用 19
    zyh670716 如果不是多域证书的话应该怎么配置呢,不能用自签证书吗,2不知道要怎么操作
    你们配置完之后 nginx -t 能测试通过吗?
  • zyh670716 3天前
    引用 20
    x86 可以每个域名用一个自签证书
    我们用的通配符做的证书,应该不用再每个域名一个证书吧
    配置完之后nginx -t能通过测试,现在nginx是可以正常启动的
  • x86 3天前
    引用 21
    比如通配符证书是针对*.a.com,然后a1.a.com,a2.a.com,都能用,这没问题
    但现在b.b.com是用不了的
  • zyh670716 3天前
    引用 22
    x86 比如通配符证书是针对*.a.com,然后a1.a.com,a2.a.com,都能用,这没问题 但现在b.b.com是用不了的
    我们是在一个证书里加了*.exp.com和*.zboory.com两个通配符,看了一下是满足我们nginx配置里的servername的
  • x86 3天前
    引用 23
    sudo lsof -i:5017 看下有监听吗?多执行几次看下,监听方的 pid 是否有变化

    另外,把 nginx -t 的结果也贴一下
  • zyh670716 3天前
    引用 24

    想问一下,这么多进程正常吗,不正常的话因为什么,要怎么解决

    上传的附件:
  • zyh670716 3天前
    引用 25
    x86 sudo lsof -i:5017 看下有监听吗?多执行几次看下,监听方的 pid 是否有变化 另外,把 nginx -t 的结果也贴一下
    我们自己写了个连接wss的脚本,是能够正常连接的,大概率是nginx的问题吧
  • zyh670716 3天前
    引用 26
    x86 比如通配符证书是针对*.a.com,然后a1.a.com,a2.a.com,都能用,这没问题 但现在b.b.com是用不了的
    还有https://im.zboory.com/api/version这个接口直接访问可以正常返回,但是通过web端调用的时候会报错跨域
  • zyh670716 3天前
    引用 27
    zyh670716 还有https://im.zboory.com/api/version这个接口直接访问可以正常返回,但是通过web端调用的时候会报错跨域
    但是请求是正常返回的,只是控制台提示跨域请求已被拦截
  • x86 3天前
    引用 28
    /api/version 这个不影响,被拦截,是因为这个接口现在不支持跨域
  • zyh670716 3天前
    引用 29
    zyh670716 想问一下,这么多进程正常吗,不正常的话因为什么,要怎么解决
    wss问题目前要怎么解决呢,现在没有思路
  • x86 3天前
    引用 30

    不知道你们 nginx 到底什么问题,还有个办法是直接通过 im-server 来处理 wss,不通过 nginx

    1. 把原来的代理相关配置注释掉
    ### 代理配置注释
    ## Web代理设置。
    ## websocket_proxy_host地址填写nginx所在服务的域名,配置nginx的SSL证书。
    ## nginx监听websocket_proxy_secure_port端口,并把请求转发到websocket_port端口。请参考专业版软件包nginx目录下的proxy目录。
    ## 配置代理地址
    #websocket_proxy_host im.example.com
    ## 配置代理端口,下面两个端口至少要配置一个
    ## 如果Web客户端使用https,需要配置SecurePort,如果使用http,需要配置Port。
    #websocket_proxy_port 5017
    #websocket_proxy_secure_port 5017
    
    1. 使用 im-server 处理 wss
    ## Websocks端口。单机版时打开,其它模式不要打开。
    #secure_websocket_port 8084
    
    ## 证书和密码。https_port和secure_websocket_port使用的证书。
    ## 证书是server.ip的域名的证书,证书不能使用自签名证书。
    ## 证书的格式是JKS,Java应用使用的类型,证书颁发后有可能有2个密码下面分别填上,也有可能只有一个密码,下面两个密码填上同样的密码。
    #jks_path /home/ubuntu/.cert/im.wildfirechat.cn.jks
    #key_store_password 628608buva
    #key_manager_password 628608buva
    
  • zyh670716 3天前
    引用 31
    x86 不知道你们 nginx 到底什么问题,还有个办法是直接通过 im-server 来处理 wss,不通过 nginx 1. 把原来的代理相关配置注释掉 ``` ### 代理配置注释 ## ...
    直接用jdk自带的keytool生成吗,web端有什么需要配置的吗
  • HeavyRain 3天前
    引用 32
    web没有修改修改的
  • zyh670716 3天前
    引用 33
    HeavyRain web没有修改修改的

    这个不能使用自签名证书,也就是我们需要在外网找阿里或者其他的平台来申请吗,不能用openssl工具来自己生成吗
  • x86 3天前
    引用 34
    这个不是我们限制的,我们不确定,可以网上查查。

    另外,我们又跟着最新的这个文档 https://docs.wildfirechat.cn/faq/web/all_in_one_https.html 来验证了一次,确定是没问题的,并且也没有出现 非常多的nginx 进程监听 5017 端口的情况。

    验证的环境是:
     nginx 版本是 1.18.0
     OS: Ubuntu 20.04.6 LTS

  • zyh670716 3天前
    引用 35
    x86 这个不是我们限制的,我们不确定,可以网上查查。 另外,我们又跟着最新的这个文档 https://docs.wildfirechat.cn/faq/web/all_in_one_https.htm ...
    能否把你们的nginx配置发我一份
  • zyh670716 3天前
    引用 36
    x86 这个不是我们限制的,我们不确定,可以网上查查。 另外,我们又跟着最新的这个文档 https://docs.wildfirechat.cn/faq/web/all_in_one_https.htm ...
    我们也是跟着这个文档来操作的,nginx版本也是1.18.0,不过我们的操作系统是arm架构银河麒麟v10操作系统,之前你们有适配过这个版本的操作系统吗
  • x86 3天前
    引用 37

    请参考

    上传的附件:
返回