WCF-Dienst über SSL Konnte nicht hergestellt sicheren Kanal für SSL/TLS mit Autorität "test-service.hostname.com'
Ich habe ein Problem. Wir versuchen, legen ein client certifacte, um einen WCF-Dienst über SSL erforderlich. Wenn ich versuche zu navigieren, um den Dienst über einen browser wird es mir zeigen, das "Sie haben eine service-Seite" aber nur wenn ich die befestigen Sie das Zertifikat, Also ich glaube nicht, dass Ihr ein IIS-Problem.
Habe ich durch eine Tonne von stack overflow Fragen, und ich denke jedes mal, wenn ich ein wenig Fortschritt. Aber Für das Leben von mir ich kann nicht erschüttern dieses Problem. Ich Hinzugefügt die Protokollierung-und hier ist das, was ich da für Fehler:
System.Net Information: 0 : [12444] SecureChannel#15775260 - Certificate
is of type X509Certificate2 and contains the private key.
System.Net Information: 0 : [12444] AcquireCredentialsHandle(package = Microsoft Unified Security Protocol Provider, intent = Outbound, scc = System.Net.SecureCredential)
System.Net Error: 0 : [12444] AcquireCredentialsHandle() failed with error 0X8009030D.
System.Net Information: 0 : [12444] AcquireCredentialsHandle(package =
Microsoft Unified Security Protocol Provider, intent = Outbound, scc = System.Net.SecureCredential)
System.Net Error: 0 : [12444] AcquireCredentialsHandle() failed with error 0X8009030D.
System.Net.Sockets Verbose: 0 : [8000] Socket#13431269::Dispose()
System.Net Error: 0 : [8000] Exception in HttpWebRequest#55386345:: - The request was aborted: Could not create SSL/TLS secure channel..
System.Net Error: 0 : [8000] Exception in HttpWebRequest#55386345::GetResponse - The request was aborted: Could not create SSL/TLS secure channel..
System.ServiceModel Error: 131075 : <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Error"><TraceIdentifier>http://msdn.microsoft.com/en-US/library/System.ServiceModel.Diagnostics.ThrowingException.aspx</TraceIdentifier><Description>Throwing an exception.</Description><AppDomain>/LM/W3SVC/1/ROOT/Application.TestHarness.Blah-1-130676061695261461</AppDomain><Exception><ExceptionType>System.ServiceModel.Security.SecurityNegotiationException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>Could not establish secure channel for SSL/TLS with authority 'test-bolt.homesite.com'.</Message><StackTrace> at System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason)
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp; msgData, Int32 type)
at Application.TestHarness.IntegrationService.QuickQuote()
Service-Config :
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="WebBehavior">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Service.Namwe" behaviorConfiguration="WebBehavior">
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="transportSecurity"
contract="Service.IContract"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="transportSecurity">
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
Client Config :
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="transportSecurity">
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name ="defaultClientCertificate">
<clientCredentials>
<clientCertificate storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" findValue="hostname.com"/>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<client>
<endpoint name="boltService" behaviorConfiguration="defaultClientCertificate"
address="https://hostname.com/Service/Integration.svc"
binding="wsHttpBinding"
bindingConfiguration="transportSecurity"
contract="ServiceRef.IServiceContract" />
</client>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
Jede Beratung würde sehr geschätzt werden.
- Nur um sicher zu gehen, wenn Sie öffnen Sie das Zertifikat-snap-in, sehen Sie das Zertifikat unter der lokalen Maschine in den persönlichen Speicher mit Namen wie konfiguriert?
- Ja ich sehe es auf localmachine unter personal-und beim betrachten des cert ist es authentifiziert (real-cert gekauft, damit ich es nicht erstellt hast)
- Ist das Zertifikat "erweiterte Schlüsselverwendung" festgelegt, um die client-Authentifizierung?
- es ist sowohl für die client-Authentifizierung und server-Authentifizierung
- Was ist der request-status, die Sie von der server-Maschine? Ist es 403? Auch gibt es einen sub-status?
- ich bekomme nicht einen 403 bekomme ich eine Ausnahme "Die Anforderung wurde abgebrochen: es Konnte keine sichere SSL/TLS-Kanal."
- Haben Sie einen Blick auf diese post, siehe die zweite Antwort bezüglich der endpoint-Konfiguration sieht ähnlich aus wie deins, vielleicht wird es Ihnen helfen, stackoverflow.com/questions/1742938/...
- Ths Problem, das ich habe ist die cert die ich verwende, ist für unsere dev-Maschine. Ich habe einen host-file-Eintrag für hostname.com zu Punkt auf meiner lokalen Maschine mit meinem aktuellen IPV4-und nicht nur auf 127.0.0.1. Ich ursprünglich dachte, vielleicht ist die loop-back-Adresse wurde möglicherweise verursacht diese Probleme. Tun Antwort #2 in diesem Beitrag wurde nicht yieled alle unterschiedliche Ergebnisse
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe herausgefunden, was mein Problem war. Der App-pool ausgeführt wurde, der service hat keinen Zugriff auf das Zertifikat. Ich war der Annahme, da musste ich steckte es in den IIS app pools wäre (nicht der Fall). Für den Fall, jemand findet es und hat eine simialar Problem hier ist, was ich schließlich gefunden, und was es behoben.
https://msdn.microsoft.com/en-us/library/aa702621.aspx Sie können dies auch in der MMC, wenn Sie wie die GUI mehr als cmd-line tools.
Ich habe das gleiche problem und gelöst problem mit diesem code;
Oder versuchen, diesen code
Ausführen von visual studio im administrator-Modus korrigiert dieses Problem für mich.