2009-12-03 24 views
0

Je rencontre une erreur de chaîne de confiance lorsque je reçois ma réponse dans WSE 3.0.WSE 3.0 Erreur de chaîne de confiance - comment puis-je voir quel certificat est renvoyé? Je veux savoir ce que cert a l'erreur de la chaîne de confiance

Leur CERT est très bien quand je prends le WSDL. Leur CERT est bien quand je me connecte. Il aime mon cert public lorsque j'envoie la requête XML.

Ce que WSE n'aime pas est le jeton dans la réponse. Microsoft.Web.Service3 appelle getelement, puis loadbinarysecuritytoken, mais vérifie ensuite la chaîne et n'aime pas ce qu'elle voit.

Je voudrais savoir quel jeton il n'aime pas. Je ne suis pas sûr de savoir ce que le jeton est. Il s'agit de données binaires, donc HttpAnalyzer n'aide pas beaucoup.

Je ne peux pas résoudre le problème tant que je ne sais pas ce qui ne va pas. Est-ce qu'ils m'envoient le mauvais cert? Est-ce juste un cert que je n'ai pas et que je dois ajouter à ma confiance personnelle? Quelle?

+0

J'utilise Visual Studio 2005 car WSE a été remplacé par WCF. Par conséquent, WSE 3.0 n'est pas pris en charge dans VS 2008 o VS 2010 – diadem

Répondre

1

Vous devez savoir quels certificats sont impliqués correctement? Généralement un certificat client et un certificat de serveur. Il me semble que le client ne peut pas valider le certificat de serveur utilisé pour signer le message reçu par le client. Si vous utilisez des certificats auto-signés, vous devez essayer d'ajouter ce certificat au dossier de certificat de l'autorité de certification racine approuvée sur l'ordinateur client. Si votre client est un service, vous devez le placer sous LocalMachine (en supposant que le service s'exécute en tant que service réseau), sinon placez-le sous CurrentUser. J'espère que cela vous indique la bonne direction.

+0

Je sais quel certificat j'attends * du serveur. Le problème est que je ne suis pas sûr si c'est réellement le certificat dans le message SOAP. Le message SOAP est traité par le code .NET principal. C'est un flux binaire dans le message de savon. WSE déchiffre le message soap dans un objet certificat, puis le traite. Si c'était le certificat que je m'attendais, il ne tomberait pas en panne. La question est - quel certificat suis-je réellement ** obtenir **. Comment puis-je comprendre cela? – diadem

+0

Pour résumer: Malheureusement, non. Je ne sais pas quel cert je récupère. C'est le problème. Je sais ce qu'il y a sur l'en-tête de la requête ssl mais je ne sais pas quelle est la signature dans le message soap lui-même. – diadem

+1

Avez-vous accès au certificat ssl du serveur? Parce que si vous le faites, vous pouvez utiliser wireshark, déchiffrer le trafic, voir les messages de savon brut, obtenir la chaîne base64 de la clé publique du certificat, et le charger dans une instance x509Certificate2 et le regarder. –