Certains services web demandent de s'authentifier avec un certificat.
En lisant la documentation, on se rend compte que le client SOAP accepte des options pour définir le certificat du client ainsi que son mot de passe. Malheureusement, je n'ai pas réussi à le faire fonctionner de cette manière.
Heureusement, il existe une autre façon de faire en injectant le certificat du client ainsi que son mot de passe directement dans la requête SSL.
$wsdl = "<URL du fichier de description du service web>"; // Ici on configure les options de la requête SSL $context = stream_context_create([ 'ssl' => [ 'local_cert' => "<chemin d'accès au certificat>", // uniquement au format PEM 'passphrase' => "<mot de passe du certificat>", ], ]); // Ici on configure les options du client SOAP $soap_options = [ 'stream_context' => $context, // injection des options de la requête SSL ]; // Ici on cré le client SOAP avec les options SOAP et SSL $soap_client = new \SoapClient($wsdl, $soap_options);