2010-12-04 7 views
3

Je suis en train d'écrire une petite application qui accède à un webservice, mais le webservice dispose d'un certificat SSL non valide. Je n'ai aucun contrôle sur ce fait car il est régi par un tiers.problème tout en générant un proxy de service de WSDL avec invalide certificat SSL

J'ai essayé d'accéder au site via IE (En tant qu'administrateur et en tant que mon propre utilisateur) et l'installation du certificat, mais il ne semble pas faire beaucoup, comme la prochaine fois que je passe en revue à ce que je reçois la même erreur .

Quand je lance svcutil je reçois la sortie suivante:

C:\Personal>svcutil.exe https://b2b:9443/LiveFeed.svc?wsdl 
Microsoft (R) Service Model Metadata Tool 
[Microsoft (R) Windows (R) Communication Foundation, Version 3.0.4506.2152] 
Copyright (c) Microsoft Corporation. All rights reserved. 

Attempting to download metadata from 'https://b2b:9443/LiveFeed.svc?wsdl' using 
WS-Metadata Exchange or DISCO. 
Microsoft (R) Service Model Metadata Tool 
[Microsoft (R) Windows (R) Communication Foundation, Version 3.0.4506.2152] 
Copyright (c) Microsoft Corporation. All rights reserved. 

Error: Cannot obtain Metadata from https://b2b:9443/LiveFeed.svc?wsdl 

If this is a Windows (R) Communication Foundation service to which you have acce 
ss, please check that you have enabled metadata publishing at the specified addr 
ess. For help enabling metadata publishing, please refer to the MSDN documentat 
ion at http://go.microsoft.com/fwlink/?LinkId=65455. 


WS-Metadata Exchange Error 
    URI: https://b2b:9443/LiveFeed.svc?wsdl 

    Metadata contains a reference that cannot be resolved: 'https://b2b:9443/Liv 
eFeed.svc?wsdl'. 

    Could not establish trust relationship for the SSL/TLS secure channel with a 
uthority 'b2b:9443'. 

    The underlying connection was closed: Could not establish trust relationship 
for the SSL/TLS secure channel. 

    The remote certificate is invalid according to the validation procedure. 


HTTP GET Error 
    URI: https://b2b:9443/LiveFeed.svc?wsdl 

    There was an error downloading 'https://b2b:9443/LiveFeed.svc?wsdl'. 

    The underlying connection was closed: Could not establish trust relationship 
for the SSL/TLS secure channel. 

    The remote certificate is invalid according to the validation procedure. 

If you would like more help, type "svcutil /?" 

Je sais que la question est de faire avec le certificat étant invalide, mais je ne peux pas sembler faire le certificat de confiance. Comment ferais-je cela?

Ce que je l'ai fait jusqu'à présent est de cliquer sur l'erreur, voir le certificat et l'installer. J'ai essayé cela dans le magasin de certificats que Windows sélectionne lui-même et dans les magasins personnels et de confiance, rien de tout cela ne fait la différence.

Même si je parviens à résoudre ce qui me concerne que je courrai en question lorsque j'installe l'application sur mon PC clients, étant donné que nous sommes dans deux pays différents.

Toute aide serait appréciée.

+0

Avez-vous déjà régler cette question? Je cours dans le même problème. – Kyle

Répondre

1

Il peut être aussi simple que l'installation du certificat CA racine du cert.

+0

J'ai essayé d'installer le cert plusieurs fois, ne fonctionnait pas. La racine CA Cert est-elle différente du cert? Si oui, comment dois-je procéder à l'installation de cela? –

+0

Oui, l'autorité de certification est un certificat différent. C'est le certificat "Autorité de certification" qui valide le certificat que vous utilisez. Les certificats CA de Verisign, Thawte etc. sont préinstallés sur votre PC, c'est pourquoi leurs certificats sont validés. Vous avez juste besoin de la clé publique du certificat CA (Ot'll sera un fichier .cer ou .p7b) cela devrait être aussi simple que de cliquer dessus et de simplement l'installer. Vous pouvez également regarder ici pour une approche un peu plus détaillée: http://blogs.technet.com/b/sbs/archive/2008/05/08/installing-a-self-signed-certificate-as-a-trusted- root-ca-dans-windows-vista.aspx – Doobi

0
try this before calling the service.. 

    ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(
      delegate 
      { 
       return true; 
      }); 
Questions connexes