Bir DER sertifikası olan bir SOAP - PHP isteği göndermeye çalışıyorum (bu, sertifikanın privateKey içermemesi anlamına geliyor), ancak başarı yok.PHP'de SOAP isteği SSL sertifikası ile nasıl gönderilir?
$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'
));
Sadece bu hataları alma: Uyarı
(2): SoapClient :: SoapClient() [soapclient.soapclient]: Özel anahtar dosyası `PATHTOMYLOCALCERT ayarlanamıyor'[APP \ Vendor \ WebServisleri'dir \ MyWS.php, hat 206]
Uyarı (2): SoapClient :: SoapClient() [soapclient.soapclient]: bir SSL kolu oluşturmak için başarısız [APP \ satıcı \ WebServisleri'dir \ MyWS.php, satır 206]
Uyarı (2): SoapClient :: SoapClient() [soapclient.soapclient]: Kripto etkinleştirilemedi [APP \ Ven dor \ WebHizmetler \ MyWS.php, satır 206]
Uyarı (2): SoapClient :: SoapClient (https: // webserviceurl: port/ws/servlet/ws? wsdl) [soapclient.soapclient]: açılamadı akış: işlem başarısız [Uygulama \ WebServices \ MyWS.php, satır 206]
Uyarı (2): SoapClient :: SoapClient() [soapclient.soapclient]: G/Ç uyarısı: dış varlık yüklenemedi " https: // webserviceurl: bağlantı noktası/ws/servlet/ws wsdl"[APP \ Vendor \ WebServisleri'dir MyWS.php \, hat 206]
ama kullanarak (php.net cinsinden) küçük bir hile buldum işlev file_get_contents ($ local_cert); hatalar gitti.
Ancak yeni bir hata geliyor.
Sonuç: string (773): ... Yukarıdaki bu hata WebService geliyorsun olduğunu ... "Hata okuma önek Action.Execute"
Demek nedir? çünkü isteğimle kimlik doğrulaması yapılamıyor?
Herkese teşekkürler. (Yanıtlarınız için minnettarız)
burada benzer bir şey: http://stackoverflow.com/questions/11187646/soapclient-not-sending-certificate – BruneX