3
我正在嘗試使用另一家公司公佈的服務。有關身份驗證和通信規格爲:使用證書進行雙向SSL的WCF驗證錯誤
- SOAP
- HTTPS與相互SSL身份驗證(雙向SSL)
- 使用公共證書,他們給我們(我使用的ServiceCertificate)
- 使用,他們給我們創造了一個專用證書(我使用的ClientCertificate)
- 的WS-Security與用戶名令牌
下面的代碼,我跟到現在爲止:
WSHttpBinding binding = new WSHttpBinding(SecurityMode.Transport);
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
binding.SendTimeout = binding.CloseTimeout = binding.ReceiveTimeout = binding.OpenTimeout = new TimeSpan(0, 15, 0); // 15 minutes
Uri uri = new Uri(input.ServiceAddress);
EndpointAddress endpointAddress = new EndpointAddress(uri);
// Client creation
using (Client client = new Client(binding, endpointAddress))
{
client.ClientCredentials.ClientCertificate.Certificate = input.PrivateCertificate;
client.ClientCredentials.ServiceCertificate.DefaultCertificate = input.PublicCertificate;
client.Open();
// Service call
ResponseType response = client.ServiceCall(params);
}
我得到這個錯誤時,該服務被稱爲:
同時使HTTP請求時出錯服務。這可能是由於在HTTPS情況下服務器證書未使用HTTP.SYS正確配置。這也可能是由於客戶端和服務器之間的安全綁定不匹配造成的。
,我已經嘗試過的東西:
- 添加此行的代碼: 「System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;」
- 發現在註冊使用Netsh
- 使用此命令端口公證書:「netsh的HTTP添加的sslcert ipport = 0.0.0.0:443 CERTHASH = 證書指紋的appid = {應用GUID}」基於另外一個問題,我們在另一個項目中有
我不知道如何解決這個問題,我對此一無所知!已經搜索了很多,我嘗試的一切都沒有做到!
儘管我不能告訴你什麼是錯誤的,但我可以告訴你SSL3&netsh位可能出現什麼問題:它們可能在最近的獅身人面像攻擊後關閉了SSL3。您應該檢查SSL握手中提供的協議和密碼(我假設您的瀏覽器至少信任SSL證書),然後查看是否啓用了這些密碼。Netsh位與服務器端無關,因此客戶端會完全忽略該位,除非您在本地運行服務器。您可以使用https://www.ssllabs.com/來測試服務器端發送的內容以及客戶端的內容。 – Maverik 2014-10-27 15:28:09
跑出字數限制:當我說最近的獅子狗襲擊時,我的意思是在新聞中,而不是在特定的第三方。 – Maverik 2014-10-27 15:28:51
@Maverik,謝謝!我有一本手冊解釋了認證和連接的要求。我知道我已經寫過這個問題,但我會試着再問一些。可悲的是,ssllabs在檢查域名時遇到了意外的錯誤,但服務器證書(我所說的公共證書)在那裏,其中一個使其信任(VeriSign)。 – 2014-10-27 20:32:51