Laden...

SSL Handshake

Erstellt von Nud3l vor 11 Jahren Letzter Beitrag vor 11 Jahren 711 Views
N
Nud3l Themenstarter:in
4 Beiträge seit 2012
vor 11 Jahren
SSL Handshake

Hi,

ich habe ein Problem mich via SSL mit einem Webservices zu verbinden. Ich habe 2 verschiedene Umgebungen mit verschiedenen Zertifikate.

Bei einer funktioniert der Verbindungsaufbau bei der anderen nicht, die Programme sind eigentlich identisch.

Der einzige Unterschied im Programm ist die geladenen WSDL und der damit zusammen hängende Endpunkt und natürlich die Zertifikate.

Ich habe jetzt mit Wireshark versucht die Verbindungsaufbau aufzuzeichnen. Dort habe ich einen Unterschied festgestellt. Das nicht funktionierende schmeißt beim "Server Hallo" eine Warning(Unrecognized Name) weshalb ich vermute das der Verbindungsaufbau nicht funktioniert.

Jetzt zu meiner Frage kann man irgendwo einstelle, dass das "Clinet Hallo" mit SSL oder SSL2 ausgeführt werden soll? (kein Name wird Übertragen)
Ist mein Annahme richtig, dass durch die Warnung mein Verbindungsaufbau nicht klappt?
Woher bekommt mein Programm die Info über SSL oder TLS? aus dem Zertifikat?
Kann man einstelle das man die Warnung ignoriert?

P
992 Beiträge seit 2007
vor 11 Jahren

Das SSL-Protokoll kann man mit System.Net.ServicePointManager.SecurityProtocol einstellen.

Zertifikatsfehler kann man ignorieren (google mal danach).

Wie lautet denn die Exception, welche du bekommst?

N
Nud3l Themenstarter:in
4 Beiträge seit 2012
vor 11 Jahren

Ich bekomme keine Exzeption sondern ein Timeout den ich vor her in der app.config unter binding unter sendTimeout angeben habe.

Als Anhang habe ich mal screenies meine wireshark traces angehängt

hier mal die Interessante Stelle meiner app.config


  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="WSAdapterBFPortBinding" closeTimeout="00:01:00"
           openTimeout="00:01:00" receiveTimeout="00:20:00" sendTimeout="00:00:20"
           allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
           maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
           messageEncoding="Mtom" textEncoding="utf-8" transferMode="Buffered"
           useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384"
              maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="Transport">
            <transport clientCredentialType="Certificate" proxyCredentialType="None"
                realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <endpointBehaviors>
        <behavior name="basicHttpCertificateBehavior">
          <clientCredentials>
            <clientCertificate findValue="CER" storeLocation="CurrentUser" storeName="My" x509FindType="FindBySubjectName" />   
            <serviceCertificate>          
              <authentication certificateValidationMode="PeerOrChainTrust" trustedStoreLocation="CurrentUser" revocationMode="Online"/>
            </serviceCertificate>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <client>
      <endpoint address="https://fehlerAddresse/wsAdapter"  
             behaviorConfiguration="basicHttpCertificateBehavior"
          binding="basicHttpBinding" bindingConfiguration="WSAdapterBFPortBinding"
          contract="QcsiWS.WSAdapterBCI" name="WSAdapterBFPort">
        <identity>
          <certificateReference storeName="My" storeLocation="CurrentUser"
            x509FindType="FindBySubjectName" findValue="testcer" />
               </identity>
      </endpoint>
    </client>
  </system.serviceModel>
N
Nud3l Themenstarter:in
4 Beiträge seit 2012
vor 11 Jahren

hier der 2. screenshot