IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Web Service] SOAP et SSL


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut [Web Service] SOAP et SSL
    Bonjour,

    J'ai un gros problème.
    Je n'arrive pas à me connecter à un webservice (qui fonctionne) avec SoapClient.

    Si quelqu'un arrive à se connecter à https://ws.mch.be/MyGolf/federalmemb...bers.asmx?WSDL avec SoapClient ou puisse m'expliquer pourquoi ce n'est pas faisable j'en serais vraiment ravis.

    Car mon code échoue sans que je n'ai trouvé en 4 j de solutions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     $clientSOAP = new SoapClient('https://ws.mch.be/MyGolf/federalmembers/federalmembers.asmx?WSDL', array(
    			'trace' => false
    			, 'cache_wsdl' => WSDL_CACHE_NONE
    	));
    PHP Warning: SoapClient::SoapClient() [function.SoapClient-SoapClient]: I/O warning : failed to load external entity "https://ws.mch.be/MyGolf/federalmembers/federalmembers.asmx?WSDL" in C:\inetpub\wwwroot\IPN\test.php on line 10 PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://ws.mch.be/MyGolf/federalmembers/federalmembers.asmx?WSDL' in C:\inetpub\wwwroot\IPN\test.php on line 10 PHP Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://ws.mch.be/MyGolf/federalmembers/federalmembers.asmx?WSDL' in C:\inetpub\wwwroot\IPN\test.php:10 Stack trace: #0 C:\inetpub\wwwroot\IPN\test.php(10): SoapClient->SoapClient('https://ws.mch....', Array) #1 {main} thrown in C:\inetpub\wwwroot\IPN\test.php on line 10
    Merci bcp.

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Bonjour,

    Quand je teste ton code j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Notice: SoapClient::SoapClient() [soapclient.soapclient]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in D:\pc_workspace\serveur_auto\services\test.php on line 7
     
    Warning: SoapClient::SoapClient() [soapclient.soapclient]: I/O warning : failed to load external entity "https://ws.mch.be/MyGolf/federalmembers/federalmembers.asmx?WSDL" in D:\pc_workspace\serveur_auto\services\test.php on line 7
    SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://ws.mch.be/MyGolf/federalmembers/federalmembers.asmx?WSDL' : failed to load external entity "https://ws.mch.be/MyGolf/federalmembers/federalmembers.asmx?WSDL" in D:\pc_workspace\serveur_auto\services\test.php:7 Stack trace: #0 D:\pc_workspace\serveur_auto\services\test.php(7): SoapClient->SoapClient('https://ws.mch....', Array) #1 {main}
    Est-ce que ton niveau de log d'erreur est au maximum car tu ne sembles pas voir les messages de niveau NOTICE...
    En tout cas, il semble que SOAP ne puisse pas travailler avec des WSDL accessible par SSL par défaut..

    Voici un extrait de la doc SOAP à ce sujet :
    For HTTP authentication, the login and password options can be used to supply credentials. For making an HTTP connection through a proxy server, the options proxy_host, proxy_port, proxy_login and proxy_password are also available. For HTTPS client certificate authentication use local_cert and passphrase options. An authentication may be supplied in the authentication option. The authentication method may be either SOAP_AUTHENTICATION_BASIC (default) or SOAP_AUTHENTICATION_DIGEST.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    Merci, mais où trouver les valeurs pour ces paramètres local_cert et passphrase ?

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Je ne sais pas.

    If you use SSL with a cert and password authentication:

    $wsdl = "https://ws.ecopatz.de/ProductInfo?wsdl";
    $pass = 'a password';
    $certFile = "./mycert.pem";

    $client = new SoapClient($wsdl,
    array(
    'local_cert' => $certFile,
    'passphrase' => $pass
    )
    );

    If you have problems with the certfile like this:

    Warning: SoapClient::__construct(): Unable to set local cert chain file `./mycert.pem'; Check that your cafile/capath settings include details of your certificate and its issuer in productinfo.php on line 27

    then the certFile is probably in the "wrong format" (the wrong format for php maybe). It worked for me, when i appended the content of the private key file and the certificate file to a single file "mycert.pem":

    cat mycert.key >mycert.pem # mycert.key was the private key
    cat mycert.crt >>mycert.pem # mycert.crt was the signed certificate

    Thanks to an author somewhere, who pointed to "curl --cert", where this little "so unimportant" dependency has been mentioned.
    Apparemment il faut également que l'extension PHP php_curl soit activée.

    Il faudrait trouver un spécialiste de SSL pour expliquer comment générer le certificat local... Est-ce que tu peux contacter le fournisseur du webservice ? Ou quelqu'un qui aurait déjà réussi à coder un client...

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    J'ai accès au serveur du webservice mais je ne vais pas en récupérer le certificat pour le mettre dans du code client, ce serait retirer tout l'intérêt du ssl.

    J'ai quand même essayer de sauvegarder le certificat publique (?) via IE mais ça n'a pas aidé (puis j'ai aucune passphrase qui s'y associe).

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/02/2009, 10h31
  2. [Web Service][SOAP] Webservice Nusoap : page blanche
    Par Harry dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/01/2007, 16h37
  3. [Web Service][SOAP] Probleme de passage de parametres
    Par _Froggy_ dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 22/03/2006, 20h54
  4. [Web Service][SOAP] Problemes d'envoi de donnée
    Par _Froggy_ dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/03/2006, 16h08
  5. [Web Service][SOAP] NuSOAP Webservice Sur tous serveurs ?
    Par Harry dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/01/2006, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo