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

Langage PHP Discussion :

Impossible d'accéder à un web service sécurisé (HTTPS ou WS-Security)


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club Avatar de bvrignaud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 17
    Points : 9
    Points
    9
    Par défaut Impossible d'accéder à un web service sécurisé (HTTPS ou WS-Security)
    Bonjour,

    J’essaie désespérément d'accéder à un web service sécurisé (d'après la doc : HTTPS/WS-Security).

    J'y arrive pour le serveur de production, mais pas pour le serveur de test.
    Ce dernier dispose d'un certificat auto-signé : certificat.pfx.
    Chose étonnante, SOAP-UI y accède parfaitement.

    Je travail sous linux (LMDE) .Comment est ce que peu intégrer ce certificat à mon système ?

    Merci

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $serviceWebTelechargementCatalogue = 'https://services.################/CatalogService.svc?wsdl';
     
    try {
        ini_set("soap.wsdl_cache_enabled", "0");
        $client = new SoapClient($serviceWebTelechargementCatalogue);
    } catch (Exception $e) {
        echo $e;
    }

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quelle est l'erreur que tu obtiens ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club Avatar de bvrignaud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://services.########/CatalogService.svc?wsdl' : failed to load external entity "https://services.#####/CatalogService.svc?wsdl"
    in /home/benoit/MesProjets/Lab/ebihr/index2.php:10
    Stack trace:
    #0 /home/benoit/MesProjets/Lab/ebihr/index2.php(10): SoapClient->SoapClient('https://service...')
    #1 {main}

  4. #4
    Futur Membre du Club Avatar de bvrignaud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    J'ai avancé un peu.
    J'ai rajouter un un paramètre pour lui dire d’accepter les certificats auto-signé, et cela fonctionne désormais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $serviceWebTelechargementCatalogue = 'https://services.################/CatalogService.svc?wsdl';
    $params = array (
        'stream_context' => stream_context_create(array(
                                                    'ssl' => array('allow_self_signed' => true)
                                                )));
     
    try {
        ini_set("soap.wsdl_cache_enabled", "0");
        $client = new SoapClient($serviceWebTelechargementCatalogue, $params);
    } catch (Exception $e) {
        echo $e;
    }

  5. #5
    Futur Membre du Club Avatar de bvrignaud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    En revanche, je n'arrive toujours pas à accéder aux méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    $serviceWebTelechargementCatalogue = 'https://services.################/CatalogService.svc?wsdl';
    $params = array (
        'soap_version' =>  SOAP_1_1,
        'trace' => 1,
        'stream_context' => stream_context_create(array(
                                                    'ssl' => array('allow_self_signed' => true)
                                                )));
    $paramsFunction = array('customerId' => '#####',
                                         'macKey' => '##############'
        ); 
    try {
        ini_set("soap.wsdl_cache_enabled", "0");
        $client = new SoapClient($serviceWebTelechargementCatalogue, $params);
        $client->myFunction(new SoapParam($paramsFunction, 'paramsFunction'));
    } catch (Exception $e) {
        echo $e;
        echo '__getLastRequest() :' . $client->__getLastRequest();
    }
    Le serveur me répond :
    SoapFault exception: [HTTP] Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8'
    [...]
    Alors que si je teste la requête générée dans SOAP-UI, elle passe bien.

    J'ai l'impression qu'il y a un problème avec l'entête.

    Des idées ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Essaie en 1.2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $params = array (
        'soap_version' =>  SOAP_1_2,
        'trace' => 1,
        'stream_context' => stream_context_create(array(
                                                    'ssl' => array('allow_self_signed' => true)
                                                )));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Futur Membre du Club Avatar de bvrignaud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    J'avais déjà essayé, et j’obtiens ça :
    SoapFault exception: [s:Sender] The SOAP action specified on the message, '', does not match the HTTP SOAP Action

  8. #8
    Futur Membre du Club Avatar de bvrignaud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Quelques infos en plus :

    Quand j'ai importer l'adresse wsdl dans SOAP-ui, il m''a générer 2 sous "ptojet" : BasicEndPoint et SecuredEndPoint.

    Le premier semble être en SOAP 1.1 et le deuxièle en 1.2.
    Les requêtes du 1er fonctionnent, mais pas pour le deuxième

  9. #9
    Futur Membre du Club
    Inscrit en
    Septembre 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bonjour

    As-tu trouvé une solution car j'ai le même problème que toi, c'est à dire :
    SoapFault exception: [s:Sender] The SOAP action specified on the message, '', does not match the HTTP SOAP Action

Discussions similaires

  1. [PB 10.5] Web Service sécurisé par https
    Par xuechen dans le forum Powerbuilder
    Réponses: 0
    Dernier message: 19/04/2010, 11h12
  2. Validation d'une architecture web service sécurisé + client windows
    Par WOLO Laurent dans le forum Services Web
    Réponses: 2
    Dernier message: 13/05/2008, 11h22
  3. Réponses: 6
    Dernier message: 08/11/2007, 13h30
  4. Pocket Pc Web Service Et Https
    Par lizati dans le forum Services Web
    Réponses: 2
    Dernier message: 29/06/2007, 09h20
  5. Web Services sécurisé, quoi utiliser?
    Par Hisander dans le forum Services Web
    Réponses: 1
    Dernier message: 25/06/2007, 14h41

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