miguelpragier Posted October 23, 2012 Share Posted October 23, 2012 Hello. My mission is to develop a client to a third party's webservice, which server machine and source codes I can't access or handle. All I have is the API specifications and the addresses. The program works fine on DevelopEnvironment without authentication, but at ProductionEnvironment it requires basic http authentication plus certificate, and then I can't even receive any answer. They said me that I could use a self-signed certificate, so I've created one in my Server ( CentOS Apache2+PHP5.3.3 ). The company sent me a functional DotNetServiceClient piece of code, which includes the app.config which follows bellow. I need some example of how to send this authentication and more the certificate in PHP SoapClient or CURL. Here is the C# application's app.config, with fake IP and certificate: <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.net> <settings> <servicePointManager expect100Continue="false" /> </settings> </system.net> <system.serviceModel> <bindings> <wsHttpBinding> <binding name="WSHttpBinding_ISyasAutoServices"> <security> <message clientCredentialType="UserName" /> </security> </binding> </wsHttpBinding> </bindings> <client> <endpoint address="http://200.200.200.200/Auto/WebServiceAuto/SyasAutoServices.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISyasAutoServices" contract="ServiceReference1.ISyasAutoServices" name="WSHttpBinding_ISyasAutoServices"> <identity> <certificate encodedValue="AwAAAAEAAAAUAAAAmqc2gWanBIqn7sbzoxWEw==" /> </identity> </endpoint> </client> <behaviors> <endpointBehaviors> <behavior> <clientCredentials> <serviceCertificate> <authentication certificateValidationMode="None" revocationMode="NoCheck"/> </serviceCertificate> </clientCredentials> </behavior> </endpointBehaviors> </behaviors> </system.serviceModel> </configuration> And here is my current client code: /* PHP WebService Client */ $connectionParameters = array( 'login' => 'login' ,'password' => 'password' ,'trace' => TRUE ,'encoding' => 'UTF-8' ,'exceptions' => TRUE ,'cache_wsdl' => WSDL_CACHE_NONE ,'soap_version' => SOAP_1_2 ,'local_cert' => file_get_contents('/my/certificate/directory/selfsignedcertificate/thatwebservice.pem') ,'passphrase' => 'd3e343der434wds' ); $theClient = new SoapClient($serverWSDLURL, $connectionParameters); $r = $theClient->GetBasicWorkData(); The answer: No answer! Only timeOut. Any example or tip? Thank you very much. Quote Link to comment https://forums.phpfreaks.com/topic/269825-soapclient-authentication-certificate-to-c-webservice/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.