Ich arbeite an einer App, die ich in der Google App Engine (GAE) ausführen werde, die auf die GDrive-API zugreifen muss. Wenn es in der Cloud läuft, kann ich meine spezielle domänenweite Autorisierung verwenden, damit meine Benutzer automatisch authentifiziert werden und ich die gdrive API ohne Probleme benutzen kann. Das funktioniert sehr gut.
Allerdings wird < beim Testen auf localhost die domänenweite Authentifizierung nicht funktionieren, da wir Ihr Google-Konto nicht authentifizieren. Sie dürfen nur angeben, dass Sie ein beliebiger Nutzer sind . Also, was ich mache, ist die Instantiierung meiner Google $client
auf localhost und in der GAE. In der GAE verwende ich die spezielle Domain-weite Authentifizierung, auf localhost, dann verwende ich die traditionelle Google Client-Konfiguration mit einer Client-ID, Client-Secret, OAuth-Token-Verarbeitung, etc.
Ich leite auf Google um, ich sage Google, den Zugriff zu erlauben, und dann leitet mich Google zurück zu localhost, um den oauth-Prozess abzuschließen. Wenn ich die code
von Google nehme und anrufe:
Ich bekomme einen SSL-Fehler über ein fehlendes CA-Paket.
In keinem der gemeinsamen Systeme konnte ein System-CA-Paket gefunden werden Standorte. PHP-Versionen vor 5.6 sind nicht richtig konfiguriert das CA-Bundle des Systems standardmäßig zu verwenden. Um Peer zu verifizieren Für Zertifikate müssen Sie den Pfad auf der Festplatte einem Zertifikatspaket für die Anfrageoption 'Verify': Ссылка . Wenn Sie nicht Benötigen Sie ein bestimmtes Zertifikatspaket, dann bietet Mozilla ein allgemeines verwendetes CA - Paket, das hier heruntergeladen werden kann (zur Verfügung gestellt von der Betreuer von cURL): Ссылка . Sobald Sie ein CA-Bundle auf der Festplatte zur Verfügung haben, können Sie die 'openssl.cafile' PHP ini Einstellung, um auf den Pfad zu der Datei zu zeigen, Sie können die Option zum Verifizieren der Anfrage weglassen. Sehen Ссылка für weitere Informationen.
Ich habe die .crt-Datei heruntergeladen, und ich habe auch versucht, ihre .pem-Datei herunterzuladen, und ich habe versucht, meine php.ini auf verschiedene Arten zu konfigurieren, damit sie diese Dateien verwendet ...
%Vor%oder
%Vor%oder
%Vor%oder
%Vor%Aber keiner von ihnen scheint zu funktionieren oder einen Unterschied zu machen. Was vermisse ich?
BEARBEITEN:
Wenn ich mir sage, dass ich dasselbe auf Produktion und localhost authentifizieren soll, bedeutet das, dass Sie nicht verstehen, was ich verlange oder warum ich den Client verwenden muss. Meine Frage betrifft die Zertifikate.
Ich fand schließlich eine Lösung aus dieser Antwort , bitte stimme ihre Antwort ab.
Wenn Sie den Code von Google und Guzzle durchsehen, müssen Sie möglicherweise angeben wo das Zertifikatsbündel gefunden werden kann, indem man so etwas macht wie das wenn Sie den Google Client und vor dem authenticate () call:
%Vor%Dadurch wird das Standardverhalten überschrieben und Sie können angeben, wo Bündel ist.
Tags und Links php ssl curl google-app-engine