我有一个WCF-BasicHttp发送端口,调用使用自签名SSL证书保护的Web服务。这些都部署在测试环境中,我们无法访问适当的证书。
BizTalk返回错误“无法为SSL / TLS安全通道建立信任关系”,因为它无法信任未签名的证书。有没有办法配置BizTalk或发送端口来禁用证书验证?
我见过代码示例,但由于没有任何代码可行,因此无法正常工作:BizTalk发送端口纯粹是配置:
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
...
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(OnValidationCallback);
...
public static bool OnValidationCallback(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors errors)
{
return true;
}
我还查看了更新BtsNtSvc.exe.config configuraiton文件,指定checkCertificateName =“false”,但这不起作用,因为该设置仅影响邮件级证书验证,而不影响传输。
<system.net>
<settings>
<servicePointManager checkCertificateName="false" checkCertificateRevocationList="false"/>
</settings>
</system.net>
根据Dijkgraaf的回复,我已将证书导入适当的商店以获取我的biztalk发送服务,它部分解决了这个问题。我们暂停了大约65000条消息。如果我批量恢复其中的200个,50%或更多将被发送到Https Web服务,但其余的将错误输出相同的错误。最终BizTalk将重试并且消息将通过。我不确定是什么原因导致错误在这一点上显现 - 高吞吐量,或高内存消耗或其他。
答案 0 :(得分:2)
不,你无法禁用它。您需要将自签名证书添加到BizTalk主机用户的受信任根证书存储中,这样它将信任该证书。