“X.509证书CN = servicebus.windows.net”Azure Service Bus Queue

时间:2016-02-25 07:45:30

标签: azure azure-web-sites x509certificate azure-servicebus-queues

我们使用填充队列的Azure Service Bus和Azure Web App。它们位于同一资源组中。我们使用WindowsAzure.ServiceBus v2.6.5。

我们很少收到此错误:

  

X.509证书CN = servicebus.windows.net不在受信任的人员商店中。 X.509证书CN = servicebus.windows.net链建设失败。使用的证书具有无法验证的信任链。替换证书或更改certificateValidationMode。无法将证书链构建到受信任的根颁发机构。

问题:Azure上出现此内部错误?如果不是,我们可以做些什么来避免这个错误?

2 个答案:

答案 0 :(得分:6)

  

我设法找到了有关此问题的更多信息。首先,   需要确定的是,这是一个纯粹的客户问题   这就是为什么没有跟踪ID。客户拒绝完成   与服务总线的TLS握手。

     

这是一个众所周知的问题,这是微软的一个已知问题   管理证书以及如何在非HTTP(S)传输上使用它们。   托管中间件的端点发生错误   Microsoft的证书不可用或缓慢或无法访问   由客户出于任何原因。我们正在调查一个解决方法   将所需的额外证书注入到TLS握手中   SBMP和AMQP传输类似于HTTP.SYS的工作方式,   这样就不需要这个额外的请求了。

     

可用的即时解决方法是启用    ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Https   这将强制所有流量使用WebSockets隧道   受先前的TLS / HTTPS握手保护,并且握手携带   所需的中间证书。 WebSockets握手确实如此   建立连接时会增加一些额外的延迟,但是   否则将与常规通信模式相媲美。该   通过该隧道使用的消息传递协议仍然是AMQP或   NetMessaging,所以你不应该担心获得HTTP特性   选择此选项时。

这是微软的回应。我会申请这个,如果我在某段时间内没有遇到任何问题,我会接受这个作为答案。谁面临这个问题,他们也可以尝试这个。

编辑:

ConnectivityMode.Https只是在可用的服务总线3中。由于Signalr上的issue,我必须使用servicebus 2。因此,我无法应用此解决方案。

答案 1 :(得分:1)

我相信必须缺少证书。

从此堆栈溢出帖子https://stackoverflow.com/a/24224550/4735373这里有一个可能有用的链接:https://corp.sts.microsoft.com/Onboard/ADFSOnboard.htm#Corp-STS-Certificates