Erreur: C# La connexion sous-jacente a été fermée: impossible d'établir une relation de confiance pour le canal sécurisé SSL/TLS
Je suis en train de faire une demande via le protocole SSL. Le certificat est déjà installé sur la machine et elle fonctionne via un navigateur.
Je suis à l'aide de cette demande:
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] data = encoding.GetBytes(request.Content.OuterXml.ToString());
string password = "XXXX";
X509Certificate2 cert = new X509Certificate2("c:\\zzzz.p12", password);
string key = cert.GetPublicKeyString();
string certData = Encoding.ASCII.GetString(cert.Export(X509ContentType.Cert));
Uri uri = new Uri(request.Url);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(uri);
myRequest.Credentials = new NetworkCredential(request.User, request.Password.ToString());
myRequest.Method = "PUT";
myRequest.ContentType = request.ContentType;
myRequest.ContentLength = data.Length;
myRequest.ClientCertificates.Add(cert);
Stream newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
System.IO.StreamReader st = new StreamReader(((HttpWebResponse)myRequest.GetResponse()).GetResponseStream());
L'aide de ce code, j'obtiens cette erreur:
La connexion sous-jacente a été fermée: impossible d'établir une relation de confiance
relation pour le canal sécurisé SSL/TLS. --->
Système.De sécurité.L'authentification.AuthenticationException: La télécommande
le certificat n'est pas valide selon la procédure de validation.
Quel est le problème?
- jetez un oeil à ce post, mayb il peut aider à u stackoverflow.com/questions/703272/...
- Grâce Johnn Lame
- Double Possible de C# Ignorer les erreurs de certificat?
- Dans le cas d'Exchange Web Services (EWS), la solution recommandée par Microsoft est ici: msdn.microsoft.com/en-us/library/bb408523.aspx
Vous devez vous connecter pour publier un commentaire.
J'ai résolu le problème avec ceci:
Assurez-vous que votre certificat est bien de confiance. A le certificat racine été ajoutés à la bonne magasin de certificats (Racine de Confiance de l'AC sur l'ordinateur Local)?
J'ai rencontré cette erreur lors de l' (propres) certificat racine (auto-signé) certificat a été ajouté à la Racine de Confiance de l'autorité de certification pour l'Utilisateur Courant). Le déplacement de la racine cert à l'autorité de certification Racine de stocker sur l'ordinateur Local résoudre mon problème.
C'est le code client, non? Et vous avez accès à une url HTTPS, n'est-ce pas?
Je pense que le problème est avec le certificat de serveur, qui la côté client TLS pile ne peut pas valider.
Lorsque vous vous connectez à l'URL via un navigateur, ça fonctionne en douceur ou voyez-vous un message d'avertissement sur le certificat d'incompatibilité?