2013-10-23 44 views
1

我有一個WCF-BasicHttp發送端口調用一個使用自簽名SSL證書進行保護的Web服務。這全部部署在測試環境中,我們無法訪問正確的證書。在BizTalk中禁用WCF自簽名證書驗證

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配置文件,指定checkCertificateName =「false」但不起作用,因爲該設置僅影響消息級證書驗證,而不是傳輸。

<system.net> 
<settings> 
    <servicePointManager checkCertificateName="false" checkCertificateRevocationList="false"/> 
</settings> 
</system.net> 

隨着Dijkgraaf的迴應,我已經導入的證書到合適的商店爲我的BizTalk發送服務,它部分地解決了問題。我們有大約65000條消息被暫停。如果我在一批中恢復其中的200個,則會有50%或更多的人發送到Https網絡服務,但其餘部分會出錯並出現相同的錯誤。最終BizTalk將會重試,並且郵件將會通過。我不確定是什麼原因導致錯誤在這一點上出現 - 高吞吐量或高內存消耗或其他。

回答

2

不,你不能禁用它。您需要將自簽名證書添加到BizTalk主機用戶的受信任根證書存儲中,這樣纔會信任證書。

+0

因此,如果在win server 2008R2上使用MMC,我會添加證書管理單元並選擇管理「服務帳戶」的證書,然後選擇我的發送端口正在使用的BizTalk服務BizTalk組? – Jeremy

+0

太棒了!這部分解決了我的問題。我發現雖然我仍然得到間歇性的錯誤,似乎在高負荷下。例如,如果我在一批中恢復200條消息,通常有50%的消息會掛起並出現相同的錯誤。 – Jeremy

+0

相同的錯誤:無法建立SSL/TLS安全通道的信任關係。出於某種原因,它現在是間歇性的。我知道該證書可以信任,因爲我可以從該機器上的IE瀏覽到該網站。 – Jeremy