解决Azure 消息队列ServiceBus提示证书不信任无权限的问题
2017-11-16 15:06
393 查看
笔者在C# 消息队列-Microsoft Azure service bus 服务总线中使用Azure消息队列,最近偶尔会遇到请求数据不入队列的问题,查找日志,问题如下:
问题显示使用的证书有一个无法验证的信任链。更换证书或改变certificatevalidationmode。无法将证书链构建到受信任的根权限。
问题出现是因为我在创建连接时没有对ConnectivityMode 做预先设置
如果代码中不对 ConnectivityMode 做预先设置,service bus 客户端( web 应用)默认使用了 AutoDetect 模式 连接 service bus 服务。 AutoDetect 会优先使用 TCP 连接模式。由于 TCP 连接模式也是加密的,所以客户端需要首先验证 service bus 服务器证书 CN = servicebus.chinacloudapi.cn 的有效性,证书链信息在 SSL 协议的 server hello 消息中返回。
如果证书链中的某些中间证书没有安装在 web 应用实例上,web 应用需要发起额外的请求到 CA 服务器上下载中间证书并安装。
修改代码如下:
异常:X.509 certificate CN=servicebus.chinacloudapi.cn, O=Shanghai Blue Cloud Technology Co. Ltd, L=Shanghai, S=Shanghai, C=CN is not in the trusted people store. The X.509 certificate CN=servicebus.chinacloudapi.cn, O=Shanghai Blue Cloud Technology Co. Ltd, L=Shanghai, S=Shanghai, C=CN chain building failed. The certificate that was used has a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. A certificate chain could not be built to a trusted root authority.
问题显示使用的证书有一个无法验证的信任链。更换证书或改变certificatevalidationmode。无法将证书链构建到受信任的根权限。
问题出现是因为我在创建连接时没有对ConnectivityMode 做预先设置
如果代码中不对 ConnectivityMode 做预先设置,service bus 客户端( web 应用)默认使用了 AutoDetect 模式 连接 service bus 服务。 AutoDetect 会优先使用 TCP 连接模式。由于 TCP 连接模式也是加密的,所以客户端需要首先验证 service bus 服务器证书 CN = servicebus.chinacloudapi.cn 的有效性,证书链信息在 SSL 协议的 server hello 消息中返回。
如果证书链中的某些中间证书没有安装在 web 应用实例上,web 应用需要发起额外的请求到 CA 服务器上下载中间证书并安装。
修改代码如下:
//最好设置连接模式为Https,默认是Tcp。如果是Tcp的话,放到云端WEB应用上会报错 ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Https; //创建连接 var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
相关文章推荐
- 只有安卓系统的浏览器提示证书不受信任的问题 ----- 证书链不完整的解决办法
- 解决”企业证书打包的ipa,点击app提示"未受信任的企业级开发者"“的问题
- BlueCoat SG设备对非标准HTTPS应用访问提示不可信任发行者证书问题解决
- svn浏览器访问新的路径,提示权限问题的解决办法
- Lync 2013演示PPT提示证书出现问题的解决办法
- 解决ubuntu下提示未信任的应用启动器的问题
- 解决GoAgent打开https网站SSL证书错误 (安全证书不受信任)问题
- 解决12306.cn网站验证码获取提示“基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系“的问题
- 解决win8的相机应用打开时提示需要权限问题
- UltraISO错误提示问题的解决--缺乏权限
- 解决Lync 2013演示PPT提示证书问题的多种方法
- 安卓课程表(解决利用Httpclient登录获得cookie继续访问但网页仍提示无权限请登录的问题)
- CA服务器扩展信息中添加CRL,彻底解决Lync 2013共享PPT提示证书问题
- Android _实现SSL解决不受信任的证书问题
- iOS applicationIconBadgeNumber 权限问题解决 (信息提示小红点)
- 解决PKIX path building failed的问题,忽略证书信任问题
- 通配符证书解决内部连接证书错提示问题
- 证书安装提示模板无权限相关问题!
- [解决办法]已经安装了数字证书,但是谷歌浏览器登录https协议的web系统时仍然提示证书不受信任
- 解决XP下访问共享提示没有权限的问题