J'essaie d'utiliser la classe .Net System.Security.SslStream pour traiter le côté serveur d'un flux SSL/TLS avec l'authentification du client.Comment spécifier les certificats acceptés pour l'authentification du client dans .NET SslStream
Pour effectuer la poignée de main, je suis en utilisant ce code:
SslStream sslStream = new SslStream(innerStream, false, RemoteCertificateValidation, LocalCertificateSelectionCallback);
sslStream.AuthenticateAsServer(serverCertificate, true, SslProtocols.Default, false);
Malheureusement, cela se traduit par la transmission d'un SslStream CertificateRequest contenant les subjectnames de tous les certificats dans mon magasin CryptoAPI Trusted Root.
Je voudrais être en mesure de surcharger cela. Ce n'est pas une option pour moi d'exiger que l'utilisateur installe ou supprime des certificats du magasin racine de confiance. Il semble que le SslStream utilise SSPI/SecureChannel en dessous, donc si quelqu'un sait comment faire l'équivalent avec cette API, cela serait également utile.
Des idées?
Rasmus, j'essaie de résoudre le même problème. Avez-vous trouvé une solution particulière? – cdpnet
@cdpnet, je l'ai résolu en utilisant l'implémentation Mono de SslStream. –