java - 套接字 IO - 如何配置和连接到安全域上的 netty 套接字 io 服务器

标签 java ssl https socket.io

我需要一些帮助来通过 https 进行 netty 套接字 io。我已经在我的本地环境中找到了它,但没有在具有安全域的服务器上。服务器启动但客户端无法连接。尝试通过使用 IP 和域名启动套接字服务器。为了让服务器在 setHostname 方法中以域名作为主机名值开始,我在/etc/hosts 文件中添加了一个条目,如下所示

127.0.0.1 localhost example.com

套接字服务器通过将 example.com 作为主机名启动,但客户端无法使用与以下相同的主机名通过 https 进行连接

var socket = io.connect('https://example.com:10443')

也尝试了选项 - { secure: true, reconnect: true, rejectUnauthorized : false } 但同样的问题。

服务器端配置如下

Configuration configuration = new Configuration();
configuration.setHostname("example.com");
configuration.setPort(10443);
configuration.setKeyStorePassword("mypassword");
InputStream stream = getClass().getClassLoader().getResourceAsStream("keystore.jks");
configuration.setKeyStore(stream);

jsk 文件是使用 keytool 命令为同一域 (example.com) 创建的

要让套接字服务器使用端口 - 10443,还有什么要做的吗?或者还有什么其他配置要做吗?

最佳答案

得到解决方案!我没有提到该域是在 cloudflare 上设置的。这里的问题是我使用的端口 - 10443。cloudflare 不支持它。将其更改为 8443 并且有效!

遇到这种情况的 friend ,请找here Cloudflare 使用的支持端口列表。与我不同,可以节省您的大部分时间。

此外,请注意我在 setHostname() 方法中使用了我的公共(public) IP 作为主机名,因此我不需要在我的主机文件中添加任何内容。然后在客户端用 https 提供实际域名以连接到服务器。就是这样。谢谢大家!

桑迪普

关于java - 套接字 IO - 如何配置和连接到安全域上的 netty 套接字 io 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49208103/

相关文章:

java - 硬编码字符串有效,输入字符串无效

java - 日志记录有时有效,但有时无效

java - 使用java通过串口发送CRC命令

java - 在restful web服务中从POJO对象创建json对象

python - 如何在 Python 2.7.10+ 中使用 SSL 连接到 HTTPS 服务器并使证书可信?

android - 解析异常 : Connection to https://api. parse.com 被拒绝

ssl - 为什么 webhook 使用 secret ?为什么不只使用 SSL?

c# - Yahoo 和 Gmail smtp 服务器使用隐式还是显式 SSL?

security - 使用 HTTPS,URL 和请求 header 是否像请求正文一样受到保护?

Apache、Tomcat 和 SSL : ProxyPass and ProxyPassReverse