【ASP .Net Core】ngrokで”400:bad request invalid hostname”や”307:Temporary Redirect”を回避

●現象
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"

参考: https://stackoverflow.com/questions/30535336/exposing-localhost-to-the-internet-via-tunneling-using-ngrok-http-error-400

コメント

タイトルとURLをコピーしました