Bonjour a toutes et a tous,
J'essaye desesperement d'ajouter le support du SSL a une application utilisant WCF, mais rien n'y fait, ca ne fonctionne pas.
Premiere etape, la generation d'un certificat en utilisant makecert.exe, le tout integre dans du code C#:
1ere question: est-ce sous une forme correcte ? Mais bon, supposons que oui, on continu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.EnableRaisingEvents = false; proc.StartInfo.FileName = localPath + "makecert.exe"; proc.StartInfo.Arguments = "-r -pe -n \"CN=www.toto.com\" -b 01/01/2000 -e 01/01/2036 -ss my -sr localmachine -sky exchange -sp \"Microsoft RSA SChannel Cryptographic Provider\" -sy 12";
Le code WCF qui prepare l'host WCF:
Le service demarre bien, mais lorsque je vais a l'adresse de la machine (ie: https://qqchose.intranet/WebServices?wsdl) j'obtiens un beau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 baseAddress = string.Format("https://{0}.{1}:{2}", System.Environment.MachineName, domainName, this.tcpPort); this.host = new ServiceHost(typeof(MySpace.WebServices), new Uri[] { new Uri(baseAddress + "/WebServices") }); BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None; ServiceMetadataBehavior behavior = new ServiceMetadataBehavior(); behavior.HttpsGetEnabled = true; host.Description.Behaviors.Add(behavior); host.AddServiceEndpoint(typeof(IMyInterface), binding, baseAddress + "/WebServices"); this.host.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByIssuerName, "www.toto.com"); this.host.Open();
Ma question finale etant: ou me suis-je plante ? Est-ce le certificat, ou la configuration du ServiceHost qui foire ?"Transfert de données interrompu
La connexion avec x.x.x.x:4001 a été interrompue pendant le chargement de la page."
Merci d'avance![]()
Partager