Après avoir résolu mon problème lié à XMLRPC.NET + HTTPs, j'ai effectué des tests réussis sur Windows avec cette solution d'exemple client/serveur XMLRPC mais je n'ai pas réussi à connecter le client (fonctionnant sous Mono Linux) au serveur (fonctionnant sous Windows 7). J'utilise des certificats auto-générés pour tester (à la fois dans le client et le serveur), mais cela ne fonctionne pas pour le client sous Linux.Échec de Mono C# HTTPs (XMLRPC.NET): certificat client ou problème de certificat de serveur?
Comme vous pouvez le voir, le code client génère un certificat X509 au démarrage:
System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();
IStateName proxy = XmlRpcProxyGen.Create<IStateName>();
XmlRpcClientProtocol cp = (XmlRpcClientProtocol)proxy;
cp.Url = "https://127.0.0.1:5678/";
cp.ClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate(@"C:\path\to\your\certificate\file\my.cer"));
cp.KeepAlive = false;
et il est conçu pour accepter tous les certificats, même non fiables. Mais malgré cela, ça ne marche toujours pas.
En outre, certains tests utilisant wget montre que wget https://www.google.com/
contacte avec succès et télécharge certificat, mais pas dans mon cas avec wget https://192.168.1.3:5678/
, et même avec --no-check-certificate
.
Quelqu'un a-t-il une idée de ce qui se passe? Merci beaucoup.
Salut et merci, poupou. Donc, si je comprends bien, sur Mono, je dois créer un fichier PKCS (en utilisant makecert?), Puis charger ce fichier en utilisant la classe 'X509Certificate2'? – virrea
Mono's makecert peut créer des fichiers PKCS # 12. Les versions plus anciennes (pas sûres pour les plus récentes) de Microsoft makecert ne pouvaient pas. Mais ** oui ** une fois que vous avez un fichier PKCS # 12, vous pourrez utiliser le fichier X509Certificate2 pour le lire (avec un mot de passe optionnel pour protéger la clé privée) – poupou