Estoy tratando de enviar una solicitud SOAP - PHP con un certificado DER (eso significa que el certificado no tiene una clave privada) pero no tiene éxito.cómo enviar solicitud SOAP con certificado SSL en PHP?
$local_cert = FULL_PATH_TO_MY_CERT;
$client = new SoapClient($wsdl, array(
'local_cert' => $local_cert,
'trace' => 1,
'exceptions' => 1,
'soap_version' => SOAP_1_1,
'encoding' => 'ISO-8859-1',
'compression' => (SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP),
'location' => 'https://webserviceurl:port/ws/servlet/ws'
));
Sólo que recibo este error:
de advertencia (2): SoapClient :: SoapClient() [soapclient.soapclient]: No se puede establecer fichero `PATHTOMYLOCALCERT clave privada'[APP \ Vendor \ WebServices \ MyWS.php, la línea 206]
Advertencia (2): SoapClient :: SoapClient() [soapclient.soapclient]: no pudo crear un mango SSL [APP \ Vendor \ WebServices \ MyWS.php, la línea 206]
Advertencia (2): SoapClient :: SoapClient() [soapclient.soapclient]: Error al habilitar crypto [APP \ Ven dor \ WebServices \ MyWS.php, línea 206]
Advertencia (2): SoapClient :: SoapClient (https: // webserviceurl: puerto/ws/servlet/ws? wsdl) [soapclient.soapclient]: no se pudo abrir stream: operación fallida [APP \ Vendor \ WebServices \ MyWS.php, línea 206]
Advertencia (2): SoapClient :: SoapClient() [soapclient.soapclient]: Advertencia de E/S: error al cargar la entidad externa " https: // webserviceurl: puerto/ws/servlet/ws? wsdl "[APP \ Proveedor \ WebServices \ MyWS.php, línea 206]
pero he encontrado un pequeño truco (en php.net) usando el función file_get_contents ($ local_cert); los errores se han ido.
Pero viene un nuevo error.
Resultado: string (773) "prefijo de lectura de error: Action.Execute"
Lo que quiero decir es ... este error anterior ... está llegando desde el servicio Web? porque no puede autenticarse con mi pedido?
Gracias a todos. (agradezco sus respuestas)
algo similar aquí: http://stackoverflow.com/questions/11187646/soapclient-not-sending-certificate – BruneX