●現象
ngrokを使ってローカル環境のサーバをLAN外に公開する際、以下のコマンドでngrokを起動しても、外部からアクセスしようとすると”307:Temporary Redirect”や”400:bad request invalid hostname”が出てダメだった
ngrok http 8888 // 400エラー
ngrok http 51000 -host-header="localhost:51000" // 307エラー
●原因
400エラーが出るのは、hostヘッダーが自分のモノじゃないから怒られるぽい。
307エラーは、作ったアプリケーションがhttps化されているためにhttpアクセスでもhttpsのポートに転送されてしまっている的な感じ。.NetCoreアプリで以下のコードを実装していると出る。
app.UseHttpsRedirection()
●対策
“-host-header=”でヘッダを自分のモノ相当に書き換える
httpsアクセスの場合、https相当にしてあげる。
例:SSLのポートが44392の場合
ngrok http https://localhost:44392 -host-header="localhost:44392"
コメント