Appengine - 使用 https 的本地开发服务器
Appengine - Local dev server with https
目标:
使用 App Engine 开发服务器缩短开发反馈周期。
对于我的使用,这必须作为 public HTTPS 地址可用。 App Engine 开发服务器仅支持 HTTP。
如何操作:
使用 ngrok 将本地开发环境公开为 https publically 可用地址。
使用 nginx 反向代理从 https 到 http。
这似乎是可行的,但我一生都没有让配置正常工作。
我在 osx 上使用 App Engine 标准 Java。
欢迎提出其他可行的解决方案或想法。当然有办法做到这一点。
如果您只有一个模块需要通过 SSL 访问,您可以简单地使用这个 https://github.com/cameronhunter/local-ssl-proxy。
安装和使用非常简单。
只需将目标端口更改为您的模块端口,然后通过 https 浏览到源端口即可。
如果您需要访问多个模块,则需要使用不同的参数(端口)多次 运行 它。
我使用 NGINX 作为我项目的自签名证书代理 https://debtstracker.io/
这是我的 NGINX 配置。您还需要在主机文件中添加一些 yourproject.local
记录。
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;
}
}
第一个位置用于 GAE devserver,第二个用于 Ionic 项目。
这是我用来生成证书的 bash 文件:
#!/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/
希望这对您有所帮助。我花了一些时间来设置它。
ngrok 支持任何 http 端口的 https url,因此您可以只使用 ngrok 将 https 域代理到 GAE 开发服务器端口
如果您有付费帐户,您可以设置 CNAME 以使用您自己的域
ngrok http -hostname=dev.example.com 8080
目标: 使用 App Engine 开发服务器缩短开发反馈周期。 对于我的使用,这必须作为 public HTTPS 地址可用。 App Engine 开发服务器仅支持 HTTP。
如何操作: 使用 ngrok 将本地开发环境公开为 https publically 可用地址。
使用 nginx 反向代理从 https 到 http。
这似乎是可行的,但我一生都没有让配置正常工作。
我在 osx 上使用 App Engine 标准 Java。
欢迎提出其他可行的解决方案或想法。当然有办法做到这一点。
如果您只有一个模块需要通过 SSL 访问,您可以简单地使用这个 https://github.com/cameronhunter/local-ssl-proxy。 安装和使用非常简单。 只需将目标端口更改为您的模块端口,然后通过 https 浏览到源端口即可。 如果您需要访问多个模块,则需要使用不同的参数(端口)多次 运行 它。
我使用 NGINX 作为我项目的自签名证书代理 https://debtstracker.io/
这是我的 NGINX 配置。您还需要在主机文件中添加一些 yourproject.local
记录。
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;
}
}
第一个位置用于 GAE devserver,第二个用于 Ionic 项目。
这是我用来生成证书的 bash 文件:
#!/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/
希望这对您有所帮助。我花了一些时间来设置它。
ngrok 支持任何 http 端口的 https url,因此您可以只使用 ngrok 将 https 域代理到 GAE 开发服务器端口
如果您有付费帐户,您可以设置 CNAME 以使用您自己的域
ngrok http -hostname=dev.example.com 8080