🔒

ngrokで独自ドメイン、IP制限を利用する

2022/01/17に公開

この記事の概要

ngrok (エングロック) を実践で利用するために自分がやっている設定をまとめました。

想定読者

  • ngrokを利用してみたい人
  • ngrokを利用したことがある人
  • ngrokで独自ドメイン、IP制限を利用したいと思っている人

事前準備

事前準備として ngrok のサインアップとインストールを実行します。

サインアップを行なう

https://dashboard.ngrok.com/signup

GitHubアカウントかGoogleアカウントを使うと簡単なのでオススメです。

自分はGitHubアカウントで登録しました。

インストール

https://dashboard.ngrok.com/get-started/setup に記載されている内容に従います。

download-ngrok

ZIPファイルを任意の場所にダウンロードして解凍します。

自分は Downloads にファイルをダウンロードして /usr/local/bin/ に展開しました。

cd /usr/local/bin/
unzip ~/Downloads/ngrok.zip

/usr/local/bin/ に設置した理由はパスを通したかったからです。

トークンの設定

以下を実行します。

ngrok authtoken {https://dashboard.ngrok.com/get-started/setup に記載してあるトークン}

実行が完了すると以下のようなメッセージが表示されます。

Authtoken saved to configuration file: /Users/YOUR_USERNAME/.ngrok2/ngrok.yml

この ngrok.yml を編集することでさまざまな設定が可能になります。

動作確認

8109 ポートで起動しているNext.jsのアプリケーションを公開してみます。

以下のコマンドを実行します。

ngrok http 8109

成功すると以下のような表示になりますので Forwarding に記載されているURLにアクセスします。

ngrok-start

終了する際は Ctrl+C を実行してください。

Freeプランだとさまざまな制約があります、支障がなければこのままでも良いのですが、より安全に便利に利用するために有料プランにアップグレードしていきます。

独自ドメイン、IP制限の設定

ここから先は有料プランでのみ設定可能な独自ドメイン、IP制限の設定をやっていきます。

プランのアップグレード

https://dashboard.ngrok.com/billing からプランをアップグレードします。

IP制限やCNAMEを利用した独自ドメインでのアクセスも行ないたいので BUSINESS を選択しました。

IP制限がいらない場合は PRO 、 独自ドメインもいらない場合は BASIC もしくは FREE でも良いかもしれません。

料金に関しては以下を参照してください。

https://ngrok.com/pricing

独自ドメインでアクセス可能にする

ここではRoute 53にホストゾーン example.com が作成されている前提で keitakn.example.com でアクセスできるように設定してみます。

EndpointsDomains から「Create Domain」を押下しドメインを作成します。

CreateDomain1

CreateDomain2

AWSコンソール側で以下の条件でレコードを作成します。

  • レコード名: keitakn.example.com
  • レコードタイプ: CNAME
  • 値: xxxxxxxxx.cname.ap.ngrok.io

CreateDomain3

ngrok 側で以下のように表示されれば設定は問題なくできています。

CreateDomain4

ngrok の実行時は以下のように regionhostname を指定して実行します。

ngrok http --region=ap --hostname=keitakn.example.com 8109

CreateDomain5

これで作成したドメインでアクセス可能になります。

ちなみにTLS証明書は ngrok で用意されているデフォルトの物なのでブラウザでTLS証明書のエラーが出ます。

警告を無視することでアクセスは可能ですがこれを解消するためには以下のページから証明書をアップロードする必要があります。

https://dashboard.ngrok.com/tls/tls-certs

IP制限を追加する

endpoints → IP RestrictionsからIP制限を追加します。

https://dashboard.ngrok.com/endpoints/ip-restriction

「Attach IP Policy」→「+ New IP Policy」から新規作成します。

CreateIP-Policies

あとがき

独自ドメインの設定をやっておけばHTTPSでしか再現できないような処理もローカルで検証できるようになります。

IP制限の設定を行なうことで安全に ngrok を利用できるようになります。

ngrok の利用を検討されている人の参考になれば幸いです。

最後まで読んでいただきありがとうございました。

Discussion