Question

J'ai été délivré un certificat PKCS # 12 à utiliser pour accéder à un service Web simple basé sur XML. Quand je charge le fichier PKCS # 12 sous Windows (Vista), je peux accéder au service à l'aide de mon navigateur.

Essayer d'accéder au service via une application, sans charger les PKCS # 12 dans les collections OS certificat, je l'ai écrit le code suivant:

// The certificate i'm using can not be authenticated as it is a development one. 
// For now, just ignore it.
static bool myRemoteCertificateValidationCallback(
         Object sender,
         X509Certificate certificate,
         X509Chain chain,
         SslPolicyErrors sslPolicyErrors
)
{ return true; }

static void Main(string[] args)
{
    ServicePointManager.ServerCertificateValidationCallback = myRemoteCertificateValidationCallback;
    X509Certificate Cert = new X509Certificate(@"certificatefile.p12","medialab");
    HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("https://ServiceURL");
    Req.ClientCertificates.Add(Cert);

    Stream S = Req.GetResponse().GetResponseStream();
    TextReader TR = new StreamReader(S);
    string Ret = TR.ReadToEnd();
    Console.Write(Ret);

}

Malheureusement, ce code échoue et je reçois un System.Net.WebException: La demande a été abandonnée: Impossible de créer un canal sécurisé SSL / TLS. J'ai remarqué que quand je fais charger le fichier PKCS # 12 dans Windows, le code fonctionne soudainement.

Que dois-je faire pour faire avec le fichier seul et évitez d'utiliser le magasin de certificats Windows?

Merci, Boaz

Plus d'infos: Juste appliqué SP1 à mon Visual Studio et maintenant je reçois une autre exception: « Un appel à SSPI a échoué, sauf exception intérieure » avec l'une exception intérieure -> « Le message reçu était inattendu ou mal formaté. »

Était-ce utile?

La solution

Vous devez avoir votre certificat installé dans le magasin de certificats. La façon la plus simple est d'utiliser IE et importer le certificat.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top