唯一选项
造成这种麻烦的原因是,我们的交易对手使用非常旧(10.x)版本的F5防火墙来终止SSL。尽管它支持客户端SHA2证书,但它仅在证书请求中发送SHA1/RSA签名哈希算法。
虽然承认上述事实,但我们的交易对手无法尽快升级F5。他们建议忽略请求的签名哈希算法,无论如何都要发送我们的SHA256证书。显然,与他们有联系的其他客户能够以某种方式做到这一点。
不幸地Net的SslStream没有为TLS握手提供那种级别的微调。
上述问题最终在没有任何特殊代码更改的情况下得到了解决:我们添加了一个代理服务器。它负责与另一方的沟通。代理服务器能够忽略传入证书请求中的特定SHA1/RSA签名哈希算法。