X插座.3.06版本正在使用wss://获取Net Net::ERR_CONNECTION_REFUSED



在生产中使用wss://版本3.06时遇到问题。

我已经能够让它在本地测试环境中工作(请参阅最后的测试环境设置)。

如果我使用的是ws://而不是wss://,那么生产服务器就可以使用

在生产中,我得到以下错误:net::ERR_CONNECTION_REFUSED

(注意:当我使用ws://时,我已经将我的测试网站切换到了http://,而不是https://

生产环境:

  1. 2个独立的Web服务器运行一个Web应用程序(负载平衡)
  2. 1个单独的服务器,运行XSockets v3.06(作为Windows服务)
  3. 所有服务器都在子域中:

a。Web服务器:web1.acme.comb.Xsocket服务器:commbus.acme.com

(注意:我没有在这里显示真实的域名(acme))

  1. 所有服务器都使用相同的通配符证书"cn=*.acme.com"
  2. 所有服务器都在防火墙后面

我尝试将ConfigurationSettings类与以下不同的构造函数一起使用:(注意:192.168.1.1不是我们使用的真正的内部IP,但它很相似)

1) 我使用这个选项是因为它在测试环境中工作

public class SecureConfig : ConfigurationSetting
{
        public SecureConfig()
            : base()
        {}
}

2)

public SecureConfig()
 : base(new Uri("wss://commbus.acme.com:4502"), new Uri("wss://192.168.1.1:4502"))
 {
     this.CertificateLocation = StoreLocation.LocalMachine;
     this.CertificateSubjectDistinguishedName = "cn=*.acme.com";
}

3)public SecureConfig():base(新Uri("wss://commbus.acme.com:4502),新Uri(wss://192.168.1.1:4502"){

4)

public SecureConfig()
 : base(new Uri("wss://commbus.acme.com:4502")
 {}

5)

public SecureConfig()
 : base(new Uri("wss://commbus.acme.com:4502")
 {
     this.CertificateLocation = StoreLocation.LocalMachine;
     this.CertificateSubjectDistinguishedName = "cn=*.acme.com";
}

测试环境:

要验证我是否可以设置wss://。我已经能够做以下测试:

1) 使用HTTPS在本地运行IIS Express2) 在控制台应用程序中运行XSockets代码

(注意:所有XSockets代码都在一个单独的库程序集中,同一个库程序集在我的测试控制台应用程序和生产中都使用)

3) 对于测试,我使用了证书"cn=localhost"

如果我在ConfigurationSetting类中使用以下内容,则效果良好:

public class SecureConfig : ConfigurationSetting
{
        public SecureConfig()
            : base()
        {
        }
}

我注意到测试站点的行为:

如果我在ConfigurationSettings类中使用以下构造函数,我在生产中也会遇到同样的错误:

public SecureConfig()
            : base(new Uri("wss://localhost:4502"))
{
}

public SecureConfig()
            : base(new Uri("wss://localhost:4502"))
        {
            this.CertificateLocation = StoreLocation.LocalMachine;
            this.CertificateSubjectDistinguishedName = "cn=local";
       }

我不确定我错过了什么。

我能够让它工作。

我不得不从文件系统加载证书。

public class SecuritConfig: ConfigurationSetting
{
public SecureConfig():base(new Uri("wss://commbus.acme.com"), new Uri("wss://192.168.1.100"))
{
           this.Certificate = new X509Certificate2("wildcard.acme.com.pfx", "pwd");
}
}

最新更新