Bonjour,

Je cherche à effectuer une connexion ssl vers un serveur.

Nous avons déjà réussi la partie connexion vers ce serveur, cependant, le client à changer les paramètres de connexion et il nous demande de déposer le fichier .jks dans le trustore... (je n'y connais pas grand chose là dessus). Donc dans un premier temps j'ai essayer via SoapUi, dans les paramètres ssl, je peux ajouter se fichier sans problème.

Donc maintenant en php ça donne quoi ?

  1. Qu'est ce que je fais de ce fichier ?
  2. Est-ce que le fichier doit être accompagné du certificat lors de la connexion ?

voici la méthode de connexion initial :

private function connectWebService($wsdl_file, $link)
    {
        $cert_file = 'soap/ssl/key.pem';
        var_dump(file_exists($cert_file));
        $context = stream_context_create(
            array(
                "ssl" => array(
                    'verify_peer' => false,
                    'local_cert'  => $cert_file
                )
            )
        );

        $login = "login";
        $mdp = "mdp";
        $settings = array(
            'location'           => $link,
            'uri'                => $link,
            'login'              => $login,
            'password'           => $mdp,
            'authentication'     => SOAP_AUTHENTICATION_BASIC,
            'trace'              => 1,
            'exceptions'         => 1,
            'soap_version'       => SOAP_1_1,
            'stream_context'     => $context
        );
        $client = new \SoapClient($wsdl_file, $settings);
        return $client;
    }

cette méthode fonctionne !

Ce que j'ai essayé :

private function connectWebService($wsdl_file, $link)
    {
        $cert_file = 'soap/ssl/key.pem';
        $cafile = 'soap/ssl/key.JKS';

        var_dump(file_exists($cert_file));
        $context = stream_context_create(
            array(
                "ssl" => array(
                    'verify_peer' => false,
                    'local_cert'  => $cert_file,
                    'cafile'      => $cafile
                )
            )
        );

        $login = "login";
        $mdp = "mdp";
        $settings = array(
            'location'           => $link,
            'uri'                => $link,
            'login'              => $login,
            'password'           => $mdp,
            'authentication'     => SOAP_AUTHENTICATION_BASIC,
            'trace'              => 1,
            'exceptions'         => 1,
            'soap_version'       => SOAP_1_1,
            'stream_context'     => $context
        );
        $client = new \SoapClient($wsdl_file, $settings);
        return $client;
    }

là bah ça ne fonctionne pas.... Je pense que je ne m'y prends pas bien... j'ai du mal à comprendre ces histoire de certificats... Bref si vous pouvez m'aider, ça serais vraiment cool !

1 réponse


cid5420
Auteur
Réponse acceptée

bon finalement je viens juste de trouver, il fallait convertir le .jks en .pem