ejabberd/XMPP 聊天服务器中的混合内容错误
Mixed Content Error in ejabberd/XMPP chat server
我的站点受 SSL 保护,当我尝试调用 XMPP 聊天服务器时显示此错误。
混合内容:位于“https://localhost:44300/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://192.168.30.1:5280/http-bind/”的页面。此请求已被阻止;内容必须通过 HTTPS 提供。
如何将 ssl 添加到 ejabberd/XMPP 聊天服务器
请帮助我,我是新手
how to add ssl to ejabberd/XMPP chat server
我认为您需要选项 tls: true 和选项 certfile: ... 尝试这样的操作:
listen:
-
port: 5280
module: ejabberd_http
request_handlers:
"/ws": ejabberd_http_ws
"/bosh": mod_bosh
"/api": mod_http_api
"/presence": mod_webpresence
web_admin: true
tls: true
certfile: "/etc/ejabberd/server.pem"
您遇到混合内容问题的原因不仅仅是因为您没有在您的 ejabberd 服务器上设置 ssl。
实际上它说的是其他问题:
- 您的网站已启动,并且 运行 使用 HTTPS (https://localhost:44300/)
- 您正试图从此 HTTPS 页面访问不安全的资源。 "not secure" 我的意思是你的 ejabberd 服务器的 HTTP 端点 (http://192.168.30.1:5280/http-bind/')
这就是您看到此问题的原因。
如何解决?
您需要通过安全端点 (HTTPS) 访问您的 ejabberd 服务器,因此您应该在您的 JS 应用程序代码中包含此 url https://192.168.30.1:5280/http-bind/。
我不熟悉 jsxc,但我找到了这个入门指南 https://github.com/jsxc/jsxc/wiki/Install-jsxc#2-configure
所以你的配置应该有 HTTPS 而不是 HTTP,例如:
xmpp: {
url: 'https://localhost:5280/http-bind/',
在此之后,您的混合内容问题应该得到解决。
可能之后,您将面临另一个问题,即您没有为您的 ejabberd 服务器设置 SSL,但它与您的 ejabberd 服务器配置有关,而不是与您的 JS 应用程序有关。
我的站点受 SSL 保护,当我尝试调用 XMPP 聊天服务器时显示此错误。
混合内容:位于“https://localhost:44300/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://192.168.30.1:5280/http-bind/”的页面。此请求已被阻止;内容必须通过 HTTPS 提供。
如何将 ssl 添加到 ejabberd/XMPP 聊天服务器
请帮助我,我是新手
how to add ssl to ejabberd/XMPP chat server
我认为您需要选项 tls: true 和选项 certfile: ... 尝试这样的操作:
listen:
-
port: 5280
module: ejabberd_http
request_handlers:
"/ws": ejabberd_http_ws
"/bosh": mod_bosh
"/api": mod_http_api
"/presence": mod_webpresence
web_admin: true
tls: true
certfile: "/etc/ejabberd/server.pem"
您遇到混合内容问题的原因不仅仅是因为您没有在您的 ejabberd 服务器上设置 ssl。
实际上它说的是其他问题:
- 您的网站已启动,并且 运行 使用 HTTPS (https://localhost:44300/)
- 您正试图从此 HTTPS 页面访问不安全的资源。 "not secure" 我的意思是你的 ejabberd 服务器的 HTTP 端点 (http://192.168.30.1:5280/http-bind/')
这就是您看到此问题的原因。
如何解决?
您需要通过安全端点 (HTTPS) 访问您的 ejabberd 服务器,因此您应该在您的 JS 应用程序代码中包含此 url https://192.168.30.1:5280/http-bind/。
我不熟悉 jsxc,但我找到了这个入门指南 https://github.com/jsxc/jsxc/wiki/Install-jsxc#2-configure 所以你的配置应该有 HTTPS 而不是 HTTP,例如:
xmpp: {
url: 'https://localhost:5280/http-bind/',
在此之后,您的混合内容问题应该得到解决。
可能之后,您将面临另一个问题,即您没有为您的 ejabberd 服务器设置 SSL,但它与您的 ejabberd 服务器配置有关,而不是与您的 JS 应用程序有关。