すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:JT/T 808 プロトコルクラウドゲートウェイデバイスの接続 (片方向認証)

最終更新日:Aug 21, 2026

このトピックでは、クラウドゲートウェイの片方向認証を使用して、JT/T 808 プロトコルデバイスを IoT Platform に接続する方法について説明します。

前提条件

Premium Edition のエンタープライズインスタンスを購入しておく必要があります。 この例では、中国 (上海) リージョンにある Premium Edition インスタンスを使用します。 詳細については、「エンタープライズインスタンスの購入」をご参照ください。

背景情報

IoT Platform の JT/T 808 プロトコルクラウドゲートウェイ機能を使用すると、TCP (セキュリティが低いため非推奨) または TLS を使用してデバイスを接続できます。 TLS を使用する場合、サーバー側の片方向認証、デバイス側の OCSP、デバイスとサーバー間の安全な双方向アクセスなどの機能を使用できます。 このトピックでは、TLS (推奨) および TCP (非推奨) を使用した片方向認証で、JT/T 808 プロトコルデバイスを接続する方法について説明します。

事前準備

このトピックのデバイス側開発例では、次の開発環境を使用します: Ubuntu 22.04 オペレーティングシステム。

接続例 (TLS、推奨)

カスタム証明書

この例では、ルート証明書 (root-ca.crt)、サーバー証明書の秘密鍵 (server.key)、サーバー証明書 (server.crt) などのカスタム証明書が必要です。

OpenSSL を使用してカスタム証明書を生成できます。 詳細については、「カスタム証明書の生成」をご参照ください。

クラウドゲートウェイプロダクトの作成

  1. IoT Platform コンソール にログインします。

  2. コンソールの左上隅で、IoT Platform インスタンスが配置されているリージョンを選択します。

  3. [インスタンス概要] ページで、対象の Premium Edition インスタンスをクリックします。

  4. 左側のナビゲーションペインで、[デバイス管理] > [クラウドゲートウェイ] を選択し、[クラウドゲートウェイの追加] をクリックします。

  5. 表示されたダイアログボックスで、パラメーターを設定します。[サーバー証明書の秘密鍵]server.key に、[サーバー証明書]server.crt に設定します。次に、[OK] をクリックします。

    パラメーターの詳細については、「クラウドゲートウェイプロダクトの作成 (JT/T 808)」をご参照ください。

    • [ゲートウェイ名]: JT808接入示例TLS を入力します。

    • [プロトコル]: [JT/T 808] を選択します。

    • [カスタムポート番号]: 7999 を入力します。

    • [認証タイプ]: [一方向認証] を選択します。

    • [トランスポートプロトコル]: [TLS] を選択します。

    • [デバイス X.509 証明書認証]: [いいえ] を選択します。

    • [OCSP の有効化]: [無効] を選択します。

  6. クラウドゲートウェイが作成されたら、クラウドゲートウェイリストでそれを見つけ、[ゲートウェイ URL] をコピーして保存します。

    ゲートウェイ URL の形式は iot-xxx.igw.iothub.aliyuncs.com で、ポート番号は 7999 です。

クラウドゲートウェイデバイスの追加

  1. 左側のナビゲーションペインで、[デバイス管理] > [製品]を選択します。作成したクラウドゲートウェイ製品を見つけ、[アクション] 列の [デバイスの管理] をクリックします。

  2. [デバイス] ページで、[デバイスの一括追加] をクリックします。

  3. [デバイスの一括追加] ダイアログボックスで、[.csv テンプレートのダウンロード] をクリックしてテンプレートファイルをダウンロードします。

    ダイアログボックスで、[製品] をクラウドゲートウェイに設定します。[バッチアップロードファイル] セクションで、[ファイルをアップロード] をクリックして、記入した CSV テンプレートをアップロードします。

  4. テンプレートに、次の図に示すようにメーカー ID、端末モデル、端末 ID を入力します。 次に、ファイルを保存します。

    パラメーターの記入方法については、「クラウドゲートウェイデバイスの作成 (JT/T 808)」をご参照ください。

    image

  5. デバイスの一括追加ダイアログボックスに戻り、[ファイルアップロード] をクリックしてファイルを IoT Platform コンソールにアップロードしてから、[OK] をクリックします。

    デバイス ID がインポートされると、IoT Platform は、アップロードされた メーカー ID端末モデル端末 ID の値を ${メーカー ID}_${端末モデル}_${端末 ID} の形式で連結したものをデバイス名として、デバイスを作成します。作成されたデバイスはデバイスリストに表示されます。

    デバイスが作成されると、すべてのデバイスのステータスは [非アクティブ] になります。

デバイス側プログラムの開発

デバイスを作成した後、デバイス側プログラムを開発してデバイスを IoT Platform に接続します。 IoT Platform は、JT/T 808 プロトコル用の C 言語のソフトウェア開発キット (SDK) を提供しています。 この例では、C SDK を使用して、[AliyunIoT_TestModel_device1] デバイスを IoT Platform に接続するプログラムを開発します。

  1. JT/T 808 プロトコル用の C 言語 SDK をダウンロード し、ファイルを解凍して jt808-c-sdk フォルダーを取得します。

  2. jt808-c-sdk/jt808_tls_demo.c ファイルで、デバイスの接続情報と認証情報を変更します。

    説明

    jt808_tls_demo.c プログラムファイルは、TLS を使用したデバイス接続の開発に使用されます。

    ......
    /* TODO: プレースホルダーを、省、市、メーカー、モデル、端末 ID、色、ナンバープレート番号などの実際のデバイス情報に置き換えます。 */
    static jt808_register_t info = {
        .province = 0x1234,
        .city = 0x4567,
        .manufacturer = "AliyunIoT",
        .model = "TestModel",
        .terminal = "device1",
        .colour = 1,
        .lisence = "ZheC*****",
    };
    /* TODO: 紐付けられた携帯電話番号 */
    static char *mobile_num = "1*********8";
    
    /* TODO: プレースホルダーを、クラウドゲートウェイエンドポイントのドメイン名とポートに置き換えます。 */
    static char *host = "iot-0******.igw.iothub.aliyuncs.com";
    static uint16_t port = 7999;
    
    /* エンドポイントのカスタムルート証明書 */
    const char *jt808_ca_cert = \
    {
        \
        "-----BEGIN CERTIFICATE-----\r\n"
        "MIIDR*************************************************ZIhvcNAQEL\r\n"
        "BQAwM*************************************************ANBgNVBAMM\r\n"
        "BklvV*************************************************MxCzAJBgNV\r\n"
        "BAYTA*************************************************QgQ0EwggEi\r\n"
        "MA0GC*************************************************S8fWxBF+lw\r\n"
        "8GKH7*************************************************3Xco/COMjP\r\n"
        "Q69QH*************************************************wuYc0WMjlS\r\n"
        "cNO7G*************************************************BABPEIJeLR\r\n"
        "c6rJ7*************************************************F8nDOm0kUd\r\n"
        "kvAdK*************************************************t6BEh9AgMB\r\n"
        "AAGjU*************************************************NVHSMEGDAW\r\n"
        "gBT4S*************************************************0GCSqGSIb3\r\n"
        "DQEBC*************************************************+I42UNjbJa\r\n"
        "ZP9bn*************************************************G+S/Tv6BEn\r\n"
        "2v1/V*************************************************zNWlwapdvp\r\n"
        "DRMmf*************************************************Vh/FVBa7gn\r\n"
        "9DWlU*************************************************AGz0HkVQq6\r\n"
        "Ks4UI***************************Vzd+\r\n"
        "-----END CERTIFICATE-----\r\n" 
    };
    ......

    パラメーター

    説明

    province

    デバイスが配置されている省と市。 値は JT/T 808-2019 プロトコル に準拠している必要があります。

    city

    manufacturer

    IoT Platform コンソールで追加したクラウドゲートウェイデバイスのメーカー ID、端末モデル、端末 ID。

    model

    terminal

    colour

    ナンバープレートの色、ナンバープレート番号、およびデバイス所有者の携帯電話番号。 ナンバープレートの色と番号の値は、JT/T 808-2019 プロトコル に準拠している必要があります。

    lisence

    mobile_num

    host

    JT/T 808 プロトコルクラウドゲートウェイのエンドポイントは、お客様が作成したクラウドゲートウェイ製品の [ゲートウェイ URL] のドメイン名部分です。

    port

    カスタムポート番号。 デフォルト値は 7999 です。

    jt808_ca_cert

    ルート証明書 root-ca.crt の内容。

  3. Ubuntu オペレーティングシステムにログインし、変更した jt808-c-sdk フォルダーをアップロードします。

    jt808-c-sdk プロジェクトのディレクトリ構造は次のとおりです。

    jt808-c-sdk
    ├── core
    ├── demos
    ├── external
    ├── jt808
    ├── output
    ├── portfiles
    ├── LICENSE
    └── Makefile
  4. ルートディレクトリ /jt808-c-sdk で、make コマンドを実行してサンプルプログラムをコンパイルします。

    make clean
    make

    生成されたサンプルプログラム jt808-tls-demo./output ディレクトリに保存されます。

  5. サンプルプログラムを実行します。

    ./output/jt808-tls-demo

    正常に実行されると、ターミナルに次の例のようなログが出力されます。 主なマイルストーンには、最初の TLS 接続の確立、JT808 登録の成功 (トークンの取得)、2 番目の TLS 接続の確立、JT808 認証の成功、およびその後のハートビート応答が含まれます。

    establish tcp connection with server(host='iot-xxx, xxx igw.iothub.aliyuncs.com', port=[7999])
    success to establish tcp, fd=5
    local port: 52448
    [1678871231.212][LK-1000] establish mbedtls connection with server(host='iot-xxx xxx igw.iothub.aliyuncs.com', port=[7999])
    [1678871231.641][LK-1000] success to establish mbedtls connection, (cost 39791 bytes in total, max used 42651 bytes)
    
    [LK-1100] < 7E xxx                          78 |  xxx               x
    [LK-1100] < 00 xxx                          56 |  xxx               V
    [LK-1100] < 30 xxx                          52 |  xxx               R
    [LK-1100] < 70 xxx                          41 |  xxx               A
    [LK-1100] < 31 xxx                          51 |  xxx               Q
    [LK-1100] < 31 xxx                          4E |  xxx               N
    [LK-1100] < 6A xxx                             | jMzY=.~
    
    [1678871231.687][LK-0000] aiot_jt808_register success
  6. インスタンスの IoT Platform コンソール に戻ります。左側のナビゲーションペインで、[デバイス管理] > [デバイス] を選択します。対象のデバイスを見つけ、そのステータスを確認します。デバイスのステータスが [オンライン] の場合、デバイスは IoT Platform に接続されています。

  7. 左側のナビゲーションペインで、[監視 & 運用保守 > Simple Log Service] を選択します。対象の製品を選択し、[デバイスからクラウドへのメッセージ] を表示します。

    [クラウド操作ログ] タブで、DeviceName AliyunIoT_TestModel_device1 で絞り込みます。メッセージがトピック $JT808/AliyunIoT/TestModel/device1/up (QoS=0) に正常に発行されたことを示す、業務タイプが [デバイスからクラウドへのメッセージ]、ステータスコードが 200 の複数のログエントリを確認できます。

接続例 (TCP、非推奨)

クラウドゲートウェイプロダクトとデバイスの作成

  1. クラウドゲートウェイ製品 (JT/T 808) を作成します。[クラウドゲートウェイの追加] ダイアログボックスで、パラメーターを設定し、[OK] をクリックします。

    • [ゲートウェイ名]:JT808接入示例 を入力します。

    • [プロトコル]:[JT/T 808] を選択します。

    • [カスタムポート番号]: 7999 を入力します。

    • [認証タイプ]: [一方向認証] を選択します。

    • [トランスポートプロトコル]: [TCP] を選択します。

  2. クラウドゲートウェイの作成後、クラウドゲートウェイリストで該当のゲートウェイを見つけ、その[ゲートウェイ URL]をコピーして保存します。

    ゲートウェイ URL の形式は iot-xxx.igw.iothub.aliyuncs.com で、ポート番号は 7999 です。

  3. クラウドゲートウェイデバイスを作成します (JT/T 808)。 次の図に示すようにデバイスを追加します。

    image

デバイス側プログラムの開発

IoT Platform は、JT/T 808 プロトコル用の C 言語のソフトウェア開発キット (SDK) を提供しています。 この例では、C SDK を使用して、[AliyunIoT_TestModel_device1] デバイスを IoT Platform に接続するプログラムを開発します。

  1. JT/T 808 プロトコル用の C 言語 SDK をダウンロード し、ファイルを解凍して jt808-c-sdk フォルダーを取得します。

  2. jt808-c-sdk/jt808_basic_demo.c ファイルで、デバイスの接続情報と認証情報を変更します。

    説明

    jt808_basic_demo.c プログラムファイルは、TCP を使用したデバイス接続の開発に使用されます。

    ......
    /* TODO: プレースホルダーを、省、市、メーカー、モデル、端末 ID、色、ナンバープレート番号などの実際のデバイス情報に置き換えます。 */
    static jt808_register_t info = {
        .province = 0x1234,
        .city = 0x4567,
        .manufacturer = "AliyunIoT",
        .model = "TestModel",
        .terminal = "device1",
        .colour = 1,
        .lisence = "ZheA*****",
    };
    /* TODO: 紐付けられた携帯電話番号 */
    static char *mobile_num = "1**********";
    
    /* TODO: プレースホルダーを、クラウドゲートウェイエンドポイントのドメイン名とポートに置き換えます。 */
    static char *host = "iot-0******.igw.iothub.aliyuncs.com";
    static uint16_t port = 7999;
    ......
  3. Ubuntu オペレーティングシステムにログインし、変更した jt808-c-sdk フォルダーをアップロードします。

  4. ルートディレクトリ /jt808-c-sdk で、make コマンドを実行してサンプルプログラムをコンパイルします。

    make clean
    make

    生成されたサンプルプログラム jt808-basic-demo./output ディレクトリに保存されます。

  5. サンプルプログラムを実行します。

    ./output/jt808-basic-demo

    正常に実行されると、デバイスはオンラインになり、データを報告します。 ターミナルに次の例のようなログが出力されます。

    root@xxx cZ:/opt/jt808-c-sdk# ./output/jt808-basic-demo
    establish tcp connection with server(host='iot-xxx.igw.iothub.aliyuncs.com', port=[7999])
    success to establish tcp, fd=3
    local port: 51018
    
    [LK-1100] < 7xxx                    '8 | ~.            /x
    [LK-1100] < 0 xxx                   '8 | ..            ix
    [LK-1100] < 4xxx                    '6 | Kl            >F
    [LK-1100] < 7xxx                    \A | p)xxx         :J
    [LK-1100] < 6 xxx                   '6 | lNxxx         >F
    [LK-1100] < 6 xxx                   '9 | izxxx         NY
    [LK-1100] < 3                          | 0YTU=#~
    
    [1678694981.477][LK-0000] aiot_jt808_register success, token:dGFxxx
    auth_key: dGlxxx                                          TU=
    [1678694981.477][LK-1000] adapter_network_deinit
    establish tcp connection with server(host='iot-0xxx70.igw.iothub.aliyuncs.com', port=[7999])
    success to establish tcp, fd=3
    local port: 51024
    
    [LK-1100] < 7xxx                           xxx
    [LK-1100] < 0xxx                           xxx
    
    [1678694981.622][LK-0000] aiot_jt808_auth success
    
    [LK-1100] < 7lxxx                          xxx
    [LK-1100] < 0xxx                           xxx
    
    [COMMON_ACK], xxx
    
    [LK-1100] < 7lxxx                          xxx
    [LK-1100] < 0xxx                           xxx
    
    [COMMON_ACK], xxx

    インスタンスの IoT Platform コンソール に戻り、デバイスのステータスと通信ログを表示できます。