Ich bin neu in PHP und ich bekomme diesen Fehler beim Laden eines Certs
%Vor%Warnung: stream_socket_client (): Lokale cert-Kettendatei 'cert.pem' konnte nicht gesetzt werden; Überprüfen Sie, ob Ihre cafile / capath-Einstellungen Details zu Ihrem Zertifikat und seinem Aussteller in /Users/jamey/Sites/providerService.php in Zeile 27 enthalten.
cert.pem befindet sich im selben Ordner wie die PHP-Datei. Die Datei cert.pem wurde im Apple Keychain-Tool erstellt
%Vor%Danke für jede Hilfe!
Sie erhalten einen Fehler, weil es versucht, Ihre cert.pem-Datei in dem Verzeichnis zu finden, in dem Sie das Skript ausführen, nicht in dem Verzeichnis, in dem sich das Skript befindet. In Ihrem Beispiel ist dies Ihr Benutzerverzeichnis "~" / p>
Versuchen Sie, Ihre Klasse zu dieser oder etwas ähnlichem zu ändern:
%Vor%Ich hatte dieses Problem auch, es stellt sich heraus, dass mein privater Schlüssel aus irgendeinem Grund nicht mit dem übereinstimmt, der mit dem aps_developer_identity.cer verbunden war, den ich hatte ...
Am Ende löschte ich alle meiner öffentlichen und privaten Schlüssel von meinem 'login' keychain-Element, dann begann ich den gesamten Prozess erneut (Erzeugt die Anfrage) ... Ich übermittelte die neue Anfrage Datei auf dem Programmportal und generiert ein neues Zertifikat, heruntergeladen, und installiert es durch einen Doppelklick darauf (developer_identity.cer). Dann setze ich die Bereitstellungsprofile zurück, um die neuen Push-SSL-Zertifikate zu verwenden, lud sie herunter und installierte sie durch Doppelklicken (aps_developer_identity.cer). Schließlich habe ich das Bereitstellungsprofil zurückgesetzt und das neue Profil heruntergeladen. Ich löschte das alte im Xcode Organizer und installierte das neue. Schließlich exportierte ich meinen 'privaten' Schlüssel als key.p12 und meinen aps_developer_identity.cer als apsdi.p12 und führte die folgenden Befehle gegen sie aus:
%Vor%Wenn Sie eine Passphrase verwenden können (empfohlen für die Produktion):
%Vor%Wenn Sie eine "leere" Passphrase verwenden möchten, müssen Sie zuerst Ihren privaten Schlüssel entschlüsseln, mit dem Passwort, das Sie bei der Konvertierung in das pem-Format angegeben haben:
%Vor%Und dann cert und unverschlüsselten Schlüssel in apns.pem (oder welchen Dateinamen Sie auch gewählt haben):
%Vor%Es ist sehr wichtig, dass Sie Ihr aps_developer_identity-Zertifikat, nicht Ihr Entwickleridentitätszertifikat als apsdi.pem exportieren.
Wenn Sie Ihre Einträge developer_identity.cer und aps_developer_identity.cer in Keychain Access erweitern können und dabei einen 'privaten' Schlüssel sehen, sollte alles funktionieren.
Als ergänzender Tipp für alle, die das gleiche Problem haben: Wenn Sie den privaten Schlüssel aus dem Zugriff von Apple auf den Schlüsselbund exportieren und in .pem umwandeln, geben Sie ein Passwort an.
Aus irgendeinem Grund scheint es, als würde ein leeres Passwort in einem der Exporte den privaten Schlüssel entfernen, daher ist die endgültige .pem nicht vollständig.
Setzen Sie also ein Dummy-Passwort, auch wenn Sie es später mit openssl entfernen.
Hinweise für die Zukunft (nach all den großen Kopfschmerzen): 1. Wenn Sie den Handshake-Fehler erhalten - die von Ihnen erstellte PEM-Datei ist wahrscheinlich falsch.
a. Stellen Sie sicher, dass sich die Datei im selben Verzeichnis wie der php befindet, den Sie ausführen möchten. b. Exportieren Sie die Zertifikat-P12-Datei und den Schlüssel darunter im Schlüsselbund-Zugriffs-Dienstprogramm. Beide dieser Dateien haben die gleiche Größe, aber sie sind unterschiedlich. c. Führe die obigen "openssl" -Befehle im macintosh-Terminal aus.
btw, die Meldung "Krypto konnte nicht aktiviert werden" wird verschwinden, wenn das System korrekt ausgeführt wird.
Ändern Sie einfach den Besitzer zu www-Daten Es wird funktionieren:)
sudo chown www-daten.www-data ck.pem
taub Benutzer von Apache www-data p>