selbstsigniertes cert. Die zugrunde liegende Verbindung wurde geschlossen: Konnte keine Vertrauensbeziehung herstellen

8

Versuchen Sie, ein selbstsigniertes Zertifikat für die Web-Services-Site unseres Intranets einzurichten. Das Zertifikat selbst zeigt an, dass es "in Ordnung" ist, aber wenn versucht wird, eine Methode vom Web-Service aufzurufen, wird ein Fehler ausgegeben, und beim Hinzufügen der Web-Referenz wird eine Warnung angezeigt.

Hier sind die Schritte und einige Screenshots, um sicherzustellen, dass ich genaue Informationen zur Verfügung stelle.

Windows Server 2003. IIS. Die Website ist "WebServices.companyName.vmc"

Hier ist der Host-Header für die Site

Vom Server wird angezeigt, dass das Zertifikat 'ok' ist.

Hier sind einige der Website-Einstellungen

Fügen Sie nun in Visual Studio 2008 die Webreferenz

hinzu

Klicken Sie auf "Ja" zum Popup

Klicken Sie mehrmals hintereinander auf "Nein".

Nachdem die Codezeile ausgeführt wurde, die den Webservice aufruft ... bekomme ich diesen Fehler

  

Die zugrunde liegende Verbindung wurde geschlossen: Konnte keine Vertrauensstellung herstellen   Beziehung für den sicheren SSL / TLS-Kanal.

Und wenn Webservice-Site in einem Browser, die kleine Pad-Sperre durch die URL-Leiste, bietet diese Nachricht:

Hier ist mein bestehender Code:

%Vor%

BEARBEITEN

Für jeden, der ein ähnliches Problem hat, lesen Sie bitte sowohl die Antwort von iamkrillin als auch meine Antwort ... da es sich um zwei unterschiedliche Wege zur Lösung des Problems handelt ... je nachdem, welchen Teil Sie kontrollieren können (der Code oder das Zertifikat) ).

    
adam 29.06.2012, 17:55
quelle

2 Antworten

11

Fügen Sie diese Codezeile irgendwo hinzu, bevor Sie Ihren Service-Client erstellen.

%Vor%

Hinweis: Dies wird dazu führen, dass Ihre App alle ungültigen Zertifikate akzeptiert und einfach in Bewegung bleibt. Wenn dies nicht akzeptabel ist, können Sie eine Funktion anhängen und eine Verarbeitung durchführen, um zu ermitteln, ob der Cert-Fehler in Ordnung ist oder nicht

    
iamkrillin 29.06.2012, 18:08
quelle
1

iamkrillin hatte eine funktionierende Lösung, da sein Code das ungültige Cert ignoriert und es der Anwendung erlaubt, den Web-Service zu nutzen.

Zusätzlich habe ich das Zertifikat korrigiert, so dass ich das ungültige Zertifikat nicht mehr ignorieren muss.

Der Host-Header-Wert (in OP angezeigt) war WebServices.mycompany.vmc, aber der "Common Name" oder "Friendly Name" für das Zertifikat (in OP-Screenshot 3 für "Certification Path" gezeigt) war WebServices.

Der allgemeine Name und die Website-URL müssen übereinstimmen. Ich habe das selbstsignierte Zertifikat mit dem allgemeinen Namen "WebServices.mycompany.vmc" neu erstellt, und jetzt ist der Zertifikatfehler verschwunden. Der Webservice ist verfügbar, ohne dass der Coder ungültige Zertifikate für die Anwendung ignorieren muss.

    
adam 02.07.2012 21:52
quelle