Goal: Reduce dev - feedback cycle by using App Engine dev server. For my use this must be available as a public HTTPS address. App Engine dev server only supports HTTP.
How to do this: Use ngrok to expose local dev environment as https publically available address.
Reverse proxy with nginx from https to http.
This seems possible, but for life of me I haven't got the config working.
I'm working with App Engine Standard Java on osx.
Other working solutions or ideas are welcome. Surely there is a way to do this.
I use NGINX as proxy with self signed certificate for my project https://debtstracker.io/
Here is my NGINX config. You would also need to add some yourproject.local
record to your hosts file.
server { # This servers dynamic content of DebtsTracker.io project over HTTPS
listen 443;
server_name debtstracker.local;
ssl on;
ssl_certificate /etc/ssl/certs/debtstracker-local.crt;
ssl_certificate_key /etc/ssl/private/debtstracker-local.key;
location /app/ {
proxy_pass http://localhost:8100/;
proxy_set_header Host $http_host;
}
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
}
}
The first location is for GAE devserver and 2nd for Ionic project.
Here is a bash file I use to generate certificates:
#!/usr/bin/env bash
# https://www.accuweaver.com/2014/09/19/make-chrome-accept-a-self-signed-certificate-on-osx/
# https://gist.github.com/jessedearing/2351836
# Run using "sudo"
echo "Generating an SSL private key to sign your certificate..."
openssl genrsa -des3 -out debtstracker-local.key 1024
echo "Generating a Certificate Signing Request..."
openssl req -new -key debtstracker-local.key -out debtstracker-local.csr
echo "Removing pass-phrase from key (for nginx)..."
cp debtstracker-local.key debtstracker-local.key.org
openssl rsa -in debtstracker-local.key.org -out debtstracker-local.key
rm debtstracker-local.key.org
echo "Generating certificate..."
openssl x509 -req -days 365 -in debtstracker-local.csr -signkey debtstracker-local.key -out debtstracker-local.crt
echo "Copying certificate (debtstracker-local.crt) to /etc/ssl/certs/"
mkdir -p /etc/ssl/certs
cp debtstracker-local.crt /etc/ssl/certs/
echo "Copying key (debtstracker-local.key) to /etc/ssl/private/"
mkdir -p /etc/ssl/private
cp debtstracker-local.key /etc/ssl/private/
Hope this helps. Took me a while to set this up.