Ich versuche eine Verbindung über SoapClient herzustellen. Ich brauche dafür ein Zertifikat. Ich habe ein PFX-Zertifikat erhalten. Ich habe den folgenden Befehl verwendet, um eine .pem-Datei zu erstellen.Zertifikat nicht akzeptiert. Die private Schlüsseldatei konnte nicht gesetzt werden
openssl pkcs12 -in cert.pfx -out cert.pem -nodes
Es gibt ein Passwort im Zertifikat, so dass ich es eingeben muss, bevor ich die cert.pem-Datei bekomme. So weit, so gut, denke ich.
Jetzt versuche ich mich mit dem WSDL-Dienst verbinden.
$url = "https://test.website.com/webservices/transfer.asmx?WSDL";
$cert = '/path/to/cert.pem';
$passphrase = "12345678";
$soapClient = new SoapClient($url, array('local_cert'=>$cert,'passphrase'=>$passphrase));
bekomme ich folgende Fehlermeldung:
(Warning) SoapClient::SoapClient(): Unable to set private key file `/var/www/vhosts/............./cert.pem'
Ich denke, das Problem ist das Zertifikat. Ist die Art und Weise, wie ich die .pfx-Datei in eine .pem-Datei konvertiert habe, korrekt?
Ich habe immer noch Probleme damit. Ich habe es gefunden. Hinweis: Wenn Sie hier das Flag "-nodes" einfügen, wird die Verwendung einer Passphrase zur Verschlüsselung der privaten Schlüssel verhindert. Whit oder ohne die Passphrase bekomme ich den gleichen Fehler. –
ist das das öffentliche oder private? –
warum hast du '-nodes' statt' -clcerts' benutzt? –