Im OXID-Entwickleralltag reicht es in 90% der Fälle aus, das die lokale Entwicklungsumgebung ohne SSL und – logischerweise – nur als localhost läuft. Doch es gibt Situationen bei denen plötzlich SSL und Erreichbarkeit von Aussen wichtige Kriterien sind. Wer nicht direkt auf einem frei zugänglichen und mit SSL ausgestatteten Server arbeiten kann und will, steht vor einem Problem. Die Konfiguration eines selbstsignierten SSL-Zertifikats ist machbar, aber auch nicht mal so auf die Schnelle erledigt.
An dieser Stelle setze ich gern auf das Tool oder besser den Service NGROK. Die Idee ist schnell erklärt: NGROK stellt eine temporäre kryptische SSL-URL bereit, die direkt auf localhost weist. Über diese URL ist der lokale Apache-Server ganz normal über das Web erreichbar. Und ist die Arbeit erledigt, dann muss NGROK nur geschlossen werden und der Tunnel ist wieder zu.
Daraus ergeben sich tolle Möglichkeiten z.B.:
- Webservices ausprobieren, die zwingend SSL benötigen
- APIs die via Webhooks auf den Shop zugreifen, können lokal ausprobiert und debuggt werden
- Entwicklungsstände können durch Dritt-Personen aus der Ferne schnell ausprobiert werden
Es ist übrigens egal, ob Euere lokale Entwicklungsumgebung ein WAMPSERVER, vServer, Docker-Container mit Alias-Konfigurationen oder virtuellen Hosts ist und auch egal ob Ihr mit Windows, Mac, Linux oder Linux-Subsystemen (WSL) arbeitet. Es funktioniert immer und überall.
Hier die Schritt für Schrittanleitung
NGROK downloaden
Richtet Euch auf ngrok.com einen Account ein. Für meine Einsatzzwecke reicht der Free-Account völlig aus. Mit einem Free-Account bekommt Ihr bei jedem Start des Tools eine neue, zufällige URL zugewiesen. Und es steht Euch nur eine Verbindung zur Verfügung. Habt Ihr Lust auf mehr (dauerhafte URL, mehrere Verbindungen zu mehr als einem Projekt gleichzeitig), dann greift zu einem Pro oder Enterprise-Account.
Nach der schnellen Anmeldung könnt Ihr gleich den zu Eurem Betriebssystem passenden Client als ZIP downloaden (Win, Mac, Linux entweder als 32 oder 64bit). Alle Schritte die ich jetzt kurz erkläre, sind ebenfalls noch einmal im NGROK-Account erklärt.
NGROK entpacken und starten
In dem ZIP ist lediglich eine ausführbare Binär-Datei (in Windows = EXE), die Ihr an einen passenden – leicht zugänglichen – Ort ablegt und erstmals startet. Spätestens jetzt öffnet sich ein Commandline-Fenster, wenn Ihr NGROK noch nicht von der commandline gestartet habt. NGROK bittet Euch Euren persönlichen Token einzugeben. Den Token findet Ihr in Eurem NGROK-Account.
Nach der einmaligen Eingabe des Tokens, sagt Euch NGROK, das Ihr das Tool gleich noch einmal in dem schon geöffneten Fenster mit folgendem Befehl starten sollt:
ngrok http 80
Das ist faktisch der Standardaufruf von NGROK. Anschließend wird Euch in dem Tool die temporäre URL mitgeteilt. Die lautet z.B. so: https://6f62-2003-c7-cf2e-9900-d19c-904a-e54c-64fe.eu.ngrok.io
Arbeitet Ihr bei Euren Projekten mit Aliases unterhalb von localhost also z.B. so:
http://localhost/meinprojekt/
… so könnt Ihr die gleiche Webseite nun so erreichen:
https://6f62-2003-c7-cf2e-9900-d19c-904a-e54c-64fe.eu.ngrok.io/meinprojekt/
Wenn Ihr mit virtuellen Hosts arbeitet, z.B. http://meinprojekt.local dann müsst Ihr NGROK etwas anders starten:
ngrok http --host-header=meinprojekt.local 80
Anschließend ist diese URL dann so erreichbar:
https://6f62-2003-c7-cf2e-9900-d19c-904a-e54c-64fe.eu.ngrok.io
Wie gesagt, beendet Ihr NGROK, dann wird der Tunnel geschlossen. Beim Neustart bekommt Ihr eine neue zufällige URL zugewiesen.
Mit NGROK arbeiten
Läuft NGROK, dann ändert Ihr für die Dauer Eurer Session in der config.inc.php von OXID die $this->sShopURL von Eurem Standard auf die temporäre NGROK-URL. Seid Ihr fertig, ändert Ihr die URL wieder zurück.
NGROK starten und das anpassen der config.inc.php klingt im ersten Moment aufwendig, aber die sich nun für Euch ergebenen Möglichkeiten wiegen die Vorbereitung locker auf.