2011-02-23 7 views
2

J'essaye d'obtenir que mon service WCF utilise le cryptage basé sur des certificats dans mon environnement local pour qu'il puisse parler à des machines dans différents domaines lorsqu'il est sorti dans l'environnement en direct. J'ai eu le service fonctionnant parfaitement avant d'essayer de mettre en application la sécurité, ainsi je suis sûr que la faute n'est pas dans le service.Certificat invalide netTCP dans WCF

J'ai généré des certificats en utilisant makecert.exe. Pour commencer, j'ai créé deux que je viens d'appeler WCFclient et WCFServer et je les ai ajoutés au dossier de confiance pour l'utilisateur actuel dans mmc. Quoi qu'il en a donné l'erreur:

Identity check failed for outgoing message. The expected DNS identity of the remote endpoint was 'localhost' but the remote endpoint provided DNS claim 'WCfServer'. If this is a legitimate remote endpoint, you can fix the problem by explicitly specifying DNS identity 'WCfServer' as the Identity property of EndpointAddress when creating channel proxy

Ce qui je me suis dit parce que je est survenue lors de émets mon certificat à un domaine inexistant appelé « WCFServer ». J'ai donc créé un autre CERT et lui ai donné un CN de "localhost" et essayé de configurer à la fois le client et le serveur pour l'utiliser. Maintenant, je reçois ce message:

The remote certificate is invalid according to the validation procedure.

J'ai mis certificateValidationMode = « None » dans ma config client, donc je ne pense pas que cela est dû à un certificat expiré ou suchlike. Est-ce que quelqu'un sait quoi d'autre pourrait causer cette erreur? Est-ce parce que j'essaie d'utiliser le même CERT à la fois sur le client et sur le serveur, et si oui, comment définir les fichiers de configuration pour éviter d'avoir le message d'erreur précédent sur l'identité DNS?

Répondre

1

Le dernier message d'erreur peut être évité en utilisant la définition suivante du point de terminaison client:

<endpoint name="..." address="..." binding="..." contract="..."> 
    <identity> 
    <dns value="WCFServer" /> 
    </identity> 
</endpoint> 

Pour la deuxième erreur, il devrait être suffisant pour utiliser PeerTrust mode de validation.

+0

J'ai eu la même erreur mentionnée ci-dessus, et en ajoutant le nœud d'identité comme dit aide! merci ladislav! – ioWint

Questions connexes