为了账号安全,请及时绑定邮箱和手机立即绑定

RabbitMQ 公开的公钥中包含的证书链

RabbitMQ 公开的公钥中包含的证书链

C#
慕盖茨4494581 2021-07-18 21:13:19
我有 ac# .net 客户端使用来自使用 TLS 保护的 RabbitMQ 实例(使用 RabbitMQ.Client)的消息。我使用自签名证书使一切正常。我们已从经认可的 CA 购买了通配符证书以供将来使用。该证书实际上已由根 CA 本身信任的中间机构签署。因为中间 CA 不会被客户端机器信任(证书不会安装到本地机器证书存储中),我们下载了一个 PEM 文件,其中包含构成信任链的所有证书。但是,.net 客户端不会验证此证书,因为它无法建立信任链而失败。我环顾四周,没有发现任何内容表明 .net 无法验证本身包含多个证书的 PEM 证书。如果我将自定义委托分配给 RabbitMQ ConnectionFactory 的 CertificateValidationCallback 属性,我可以看到证书链仅包含一个证书,即由中间 CA 签名的证书。客户端最终将部署到数百台机器上,因此我们宁愿不必将中间证书部署到所有机器上,然后继续管理它们。我知道我可以通过将 AcceptablePolicyErrors 属性设置为 SslPolicyErrors.RemoteCertificateChainErrors 来设置关闭链验证,但在我看来这让事情变得不那么安全。所以,我在这里有两个主要问题:.net 加密验证是否根本不支持包含链中所有其他证书的证书(至少如果该证书是 PEM)?有没有办法解决这个问题?我正在使用 .net 4.5.2,尽管在 .net 4.6.2 和 .net 4.7.1 中也会出现同样的问题。我在 Windows 7 机器上运行它。RabbitMQ 节点运行在 Windows 2012 服务器上。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 183 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信