Ich habe mit einer älteren Version von OpenSSL (OpenSSL 0.9.8o) gearbeitet und musste neuere OpenSSL 1.0.1e-fips verwenden, weil ich keine Verbindung zu WSDL herstellen konnte:
Message: SoapClient::SoapClient(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Ich muss die SSL-Zertifizierungsprüfung deaktivieren, ich habe versucht:
%Vor%'
Und es wirft:
Message: SoapClient::SoapClient(): Peer certificate CN=
localhost.localdom 'stimmt nicht mit dem erwarteten CN überein = SAME IP AS IN SoapClient()'
Dann habe ich 'peer_name'=> 'localhost.localdom',
in stream_context
hinzugefügt und dann steht, dass die XML-Datei leer ist:
Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document
PHP 5.5
Okey, ich konnte das Problem finden.
Sie können dieses Chaos mit einer stabilen Version von PHP 5.5 vermeiden
Kürzlich habe ich gelernt, dass Fehler: "sieht aus, als ob wir kein XML-Dokument bekommen" wird wegen PHP-Version verursacht - PHP 5.6 in 5.5 funktioniert wie ein Zauber.
1) Entfernen Sie die SSL-Zertifikatsprüfung in PHP 5.6:
In der Version 5.6 war die SSL-Zertifizierung standardmäßig aktiviert. Wenn Sie sie deaktivieren möchten, müssen Sie den kontextbasierten Stream übergeben:
%Vor% 2) Gelöschte ?wsdl
und stattdessen .wsdl
(mit ?wsdl
, es funktionierte nicht für mich)
In meinem Fall hat stream_context_create nicht funktioniert.
Also lade ich diese Datei hier herunter: Ссылка
und platzierte es in meinem lokalen Host als: F: \ xampp \ apache \ cert.pem und gab den gleichen Weg für openssl.cafile = F: \ xampp \ apache \ cert.pem in meinem phpini
Das hat den Localhost dazu gebracht, ein Zertifikat zu erwerben und die Dinge haben super funktioniert ... !! Dies zu veröffentlichen, falls dies jemandem helfen könnte, meine Situation durchzugehen.
Tags und Links php https soap web-services