Lorsque j'essaie de me connecter à un point de terminaison SSL avec l'extension PHP SOAP sous Windows, j'obtiens le SoapFault "Impossible de se connecter à l'hôte". Le certificat client n'est pas une exigence du service.Comment obtenir une connexion SSL avec l'extension PHP SOAP?
$sslOptions = array(
'ssl' => array(
'cafile' => "c:/inetpub/wwwroot/eServices/Server_DSA_Public_Certificate.pem",
'allow_self_signed' => true,
'verify_peer' => false,
),
);
$sslContext = stream_context_create($sslOptions);
$clientArguments = array(
'stream_context' => $sslContext,
'trace' => true,
'exceptions' => true,
'encoding' => 'UTF-8',
'soap_version' => SOAP_1_1,
);
$oClient = new WSSoapClient("c:/inetpub/wwwroot/eServices/svc.wsdl", $clientArguments);
// WSSoapClient extends SoapClient to add a WS-Security UsernameToken header
$oClient->__setUsernameToken("myusername", "mypassword");
return $oClient->__soapCall($operation, $request);
Je convertis au format .pem un certificat de serveur auto-signé (.cer) que m'a donné et je passe que comme « cacert ».
Suis capable d'accéder au service parfaitement en utilisant soapUI avec le même wsdl. Question: Ai-je besoin de mettre le certificat de serveur dans un magasin de confiance? J'ai déjà utilisé Internet Explorer pour l'ajouter dans les 'Autorités de certification racines de confiance'. Question: En passant dans 'cacert', est-ce suffisant pour PHP de savoir qu'il peut faire confiance au serveur?
Toute aide ou suggestion serait grandement appréciée.