SORACOM Napter を利用してIoTデバイスにTLS接続する
当ガイドでは、SORACOM Napter(以降、Napter)を利用して、IoT SIM を使用したデバイスにTLS接続する方法を解説しています。
はじめに
Napter は、IoT SIM を使用したデバイスへの簡単でセキュアなリモートアクセスを提供します。
TLSオプションはアクセス元からSORACOMプラットフォームまでの通信をTLS接続とします。これによってルーターの管理画面やPLCの制御画面等、ローカルから暗号化されていないHTTPでアクセスされることを前提とした管理画面でもHTTPSのエンドポイントをアクセス元に提供できます。TLS通信はSORACOMプラットフォームで終端され、デバイスへは待ち受けているプロトコルでアクセスします。
当ガイドでは、SIM を利用したLinux デバイス上にウェブサーバーを立て、暗号化されていないHTTPで待受を行いNapter を経由することで暗号化されたTLS でセキュアに接続を行います。 当ガイドは以下の4つのステップです。
当ガイドの前提は以下のとおりです。
- SORACOM のアカウントを作成済みであること
- デバイスが準備されており、IoT SIM で接続できること
各種デバイスでの IoT SIM の使用は各種デバイスで SORACOM Air を使用するを参考にしてください。
ステップ 1: デバイスの設定を行う
デバイスにHTTPで待ち受けするためのウェブサーバーを立てます。 今回はデバイスとしてRaspberry Pi を想定した手順を掲載します。
$ sudo apt-get install -y nginx
$ systemctl start nginx
$ systemctl status nginx
以下のコマンドでhttpの待受ができているかを確認します。 nginx のデフォルト画面が出ていれば成功です。
$ curl localhost
ステップ 2: Napter の利用を開始する
ソラコムユーザーコンソールの SIM 管理メニューからSIMを選択して「オンデマンドリモートアクセス」を選択します。
接続先の情報を設定します。各設定項目の内容は以下の通りです。
- デバイス側ポート
- デバイスが待ち受けているポート番号
80
を指定します
- デバイスが待ち受けているポート番号
- アクセス可能時間
- リモートアクセスする時間を任意に指定します。指定した時間を経過するとリモートアクセスはできなくなります。最大で8時間となります。
- アクセス元IPアドレスレンジ
- リモートアクセスを許可するリモート側のIPアドレスレンジを指定します。(ブランクとした場合、APIコール時のソースグローバルIPアドレスがデフォルトで設定されます。)
- TLSオプション
- ONにします。OFFにするとアクセス元からSORACOMプラットフォームまでも暗号化されていないHTTP通信となります。
アクセス元IPアドレスレンジはデフォルト(ブランク)でも構いませんが、 以下のサイトなどで確認してもよいでしょう。
https://whatismyipaddress.com/
なお、アクセス元IPアドレスレンジはカンマ区切りで複数のアドレス範囲を指定することも可能です。
続いて「OK」をクリックします。
以下のようにアクセス情報が表示されます。 デバイスにアクセスするには(例)に記載されているHTTPS のURL をメモしておきます。
ステップ 3: Napter でTLS接続する
先ほどメモしたHTTPS のURLをブラウザに入力します。 デバイスはhttpsに対応していませんが、Napter の TLS オプションを利用することで、インターネット区間をHTTPSでウェブサーバーへアクセスできていることが確認できます。
ステップ 4: Napter の接続を切断する
接続済みのリモートアクセスは以下のように切断できます。
対象のIoT SIMを指定して「オンデマンドリモートアクセス」を選択します。
「すべてのリモート接続設定を表示」をクリックし削除したいポートの「削除」をクリックします。
「削除」をクリックし、ブラウザを再読み込みすると接続ができなくなっていることを確認してください。