Fehler mit ssl-cert mit PHP
Ich bin neu in php und ich bin immer diese Fehler versucht zu laden cert
jameys-macbookpro41:~ user$ php -f ~/Sites/providerService.php
Warnung: stream_socket_client(): Unable to set local cert-chain-Datei cert.pem'; Überprüfen, dass Ihre cafile/capath zu den Einstellungen gehören die details zu Ihrem Zertifikat und dessen Emittent /Users/jamey/Sites/providerService.php on line 27
cert.pem ist in den gleichen Ordner wie die php Datei. die Datei cert.pem erstellt wurde, in der Apple keychain tool
class pushNotifications {
...
private $sslPem = 'cert.pem';
...
function connectToAPNS(){
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl',
'local_cert', $this->sslPem);
Vielen Dank für jede Hilfe!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie bekommen eine Fehlermeldung, weil Sie versucht zu finden, Ihre cert.pem-Datei in das Verzeichnis, das Sie ausführen, das Skript aus, nicht das Verzeichnis das Skript ist in. In deinem Beispiel ist es Ihrem Benutzer-Verzeichnis "~".
Versuchen Sie, Ihre Klasse zu dies, oder etwas ähnliches:
Ich hatte dieses Problem auch, es stellt sich heraus, dass aus irgendeinem Grund meinen privaten Schlüssel nicht übereinstimmen, die im Zusammenhang mit der aps_developer_identity.cer hatte ich...
Ich landete clearing alle meinem öffentlichen und privaten Schlüssel von meinem "login" - Schlüsselbund-Element, dann fing ich an, den gesamten Prozess immer wieder (der die Anforderung Generiert hat)...ich habe die neue Anfrage-Datei auf das Programm-portal und generiert ein neues Zertifikat, heruntergeladen und installiert Sie per Doppelklick (developer_identity.cer). Dann habe ich einen reset der provisioning-profile zu verwenden, die neue Push-SSL-certs, heruntergeladen und installiert Sie per Doppelklick (aps_developer_identity.cer). Schließlich habe ich zurückgesetzt, das provisioning-Profil heruntergeladen und die neue. Ich konnte aus der alten in die Xcode-Organizer, und installiert die neue. Endlich, ich exportierte meine 'private' - Taste als-Taste.p12 und mein aps_developer_identity.cer als apsdi.p12, und lief die folgenden Befehle gegen Sie:
Wenn Sie okay sind mit einer passphrase (empfohlen für die Produktion):
Wenn Sie verwenden möchten eine 'leere' die passphrase, Sie benötigen zum entschlüsseln Ihren privaten Schlüssel zuerst mit dem Passwort, das Sie angegeben, wenn Sie konvertiert es zu pem-format:
Und dann die Katze, die das cert und der unverschlüsselte Schlüssel in apns.pem (oder was auch immer mit dem Namen, den Sie gewählt haben):
Ist es sehr wichtig, dass Sie exportieren Ihre aps_developer_identity Zertifikat nicht Ihre developer_identity Zertifikat als apsdi.pem.
Wenn Sie können erweitern Sie Ihren developer_identity.cer und aps_developer_identity.cer Einträge im Schlüsselbund, und Sie sehen eine 'private' - Taste, wenn Sie das tun, sollte alles funktionieren.
Als ergänzenden Tipp, für jemand mit dem gleichen Problem: beim Export der privaten Schlüssel von Apple keychain access, und konvertieren .pem-GEBEN Sie ein PASSWORT EIN.
Aus irgendeinem Grund, es scheint, verlassen ein leeres Kennwort in einem der Ausfuhren entfernt der private Schlüssel, also auch die Letzte .pem-ist nicht vollständig.
So setzen Sie ein dummy-Passwort, wenn Sie danach entfernen Sie es mit openssl.
Hinweise für die Zukunft (nachdem er eine große Kopfschmerzen, weil alle von diesem):
1. wenn Sie die handshake-Fehler - die pem-Datei, die Sie erstellt haben, ist wahrscheinlich falsch.
ein. stellen Sie sicher, dass die Datei im gleichen Verzeichnis wie die php, die Sie versuchen zu laufen.
b. exportieren Sie das Zertifikat p12-Datei UND den Schlüssel unter Ihr in die Schlüsselbund-Dienstprogramm.diese beiden Dateien die GLEICHE Größe haben, aber Sie SIND anders.
c. die oben genannten "openssl" - Befehle in der macintosh-terminal.
btw, die Meldung "Failed to enable crypto" wird dissappear, wenn das system korrekt läuft.
Ändern Sie einfach den Besitzer auf www-data funktioniert Es 🙂
deafult user der apache www-data