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

IoT Platform:クラウドゲートウェイ経由での GB/T 32960 デバイスの接続 (片方向 TLS)

最終更新日:Jun 09, 2026

GitHub のオープンソースクライアントを使用し、サーバー側の TLS 検証を行うクラウドゲートウェイを経由して、GB/T 32960 準拠の車両デバイスを IoT Platform に接続します。

前提条件

  • Exclusive Enterprise Edition インスタンスが利用可能であること。この例では、中国 (上海) リージョンを使用します。

    Enterprise Edition インスタンスの購入

  • カスタム証明書が準備されていること。

    必要なファイル:ルート証明書 (root-ca.crt)、サーバー秘密鍵 (server.key)、およびサーバー証明書 (server.crt)。

    これらは OpenSSL で生成します。カスタム証明書の生成

背景

IoT Platform のクラウドゲートウェイは、TCP または TLS 経由での GB/T 32960 接続をサポートしています。TLS の使用が推奨されており、サーバー側の単方向検証、デバイス側の OCSP、および相互 TLS をサポートしています。

この例では、サーバー側の単方向検証を行う TLS を使用します。

プロトコルの詳細については、「GB/T 32960 プロトコルクラウドゲートウェイの概要」をご参照ください。

GB/T 32960 オープンソースクライアントは GitHub で入手できます。

環境の準備

  • お使いのオペレーティングシステムに Git と Patch がインストールされていること。

  • Java 開発環境が設定されていること:

ソースコードのダウンロード

デモをクローンし、パッチファイルを適用します:

  1. 次のコマンドを実行して、tsp デモのリポジトリをクローンします。

    git clone https://github.com/zhengyishan/tsp.git
    cd tsp
    git checkout 5ef2907b7160f74cf4948b641d75fccd50c5dd6a -b demo_branch
  2. パッチファイル gb32960.patchtsp ディレクトリにダウンロードします。

  3. 次のコマンドを実行して、tsp デモファイルにパッチを適用します。

    patch -p1 < gb32960.patch

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

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

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

  3. [インスタンス詳細] ページで、対象の Exclusive Enterprise Edition インスタンスをクリックします。

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

  5. 表示されるダイアログボックスで、[サーバー証明書の秘密鍵]server.key ファイルの内容に設定し、[サーバー証明書][server.crt] ファイルの内容に設定します。

    パラメーターの詳細については、「クラウドゲートウェイの追加」をご参照ください。

    [クラウドゲートウェイ名]GBtest に、[プロトコル][GB/T 32960] に、[カスタムポート番号]8999 に設定します。[認証タイプ][サーバー側の単方向検証] を、[トランスポートプロトコル][TLS] を選択します。[デバイス X.509 証明書認証を有効にする][いいえ] を、[OCSP を有効にする][無効] を選択します。

  6. [OK] をクリックします。

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

    ゲートウェイ URL の形式は xxx.igw.iothub.aliyuncs.com (ポート番号: 8999) です。完全な URL を保存してください。

デバイスの追加

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

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

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

    ダイアログボックスでは、[プロダクト] はすでにクラウドゲートウェイとして選択されています。ダイアログボックスには、[一括アップロードファイル] フィールドと [ファイルのアップロード] ボタンも表示されます。

  4. テンプレートに、[VIN] (例:device10000000001) を入力します。その後、ファイルを .csv 拡張子で保存します。

    重要

    [VIN] は車両識別番号です。長さは 17 文字で、文字と数字を含めることができます。

  5. デバイスの一括追加ダイアログボックスに戻ります。[ファイルをアップロード] をクリックして先ほど保存したファイルをアップロードし、[OK] をクリックします。

    ファイルがアップロードされると、"Parsing complete" というメッセージと [合計デバイス数] が表示されます。解析結果を確認し、[OK] をクリックします。

    デバイス ID がインポートされると、IoT Platform は対応するデバイスを作成し、アップロードされた [VIN] の値をデバイスの DeviceName として使用します

    新しいデバイスのステータスは [非アクティブ] です。

デバイスクライアントの開発

デバイス device10000000001 を IoT Platform に接続するための Java クライアントを開発します。

  1. IntelliJ IDEA を開き、ダウンロードした [tsp] デモをインポートします。

  2. プロジェクトで、ルート証明書ファイル root-ca.crt/dyy-gateway-tcu/src/main/resources ディレクトリにインポートします。

  3. プロジェクトで /dyy-gateway-tcu/src/main/java/com/dyy/tsp/gateway/tcu/config/TcuProperties.java ファイルを開き、デバイス接続パラメーターを変更します。

    次のパラメーターを実際の値に置き換えます:

        // ゲートウェイのドメイン名。TODO: クラウドゲートウェイインスタンスのドメイン名に置き換えてください。
        private String gatewayHost = "iot-*******.igw.iothub.aliyuncs.com";
        // ゲートウェイのポート。TODO: クラウドゲートウェイインスタンスのポートに置き換えてください。
        private Integer gatewayPort = 8999;
        // TLS を使用するかどうかを指定します。TODO: TCP ダイレクト接続を使用する場合は、false に設定してください。
        private boolean useSSL = Boolean.TRUE;
        // TLS を使用しない場合は、これを無視してください。TLS を使用する場合は、ルート証明書ファイル root-ca.crt のパスを設定します。
        private String CA_PATH = "dyy-gateway-tcu/src/main/resources/root-ca.crt";
        // 車両識別番号。値は 17 バイト長である必要があります。TODO: 車両の VIN に置き換え、この VIN を使用してコンソールでデバイスを作成してください。
        private String vin = "device10000000001";

    パラメーター

    説明

    gatewayHost

    iot-*******.igw.iothub.aliyuncs.com

    GB/T 32960 プロトコルクラウドゲートウェイのエンドポイントです。

    これは、お客様のクラウドゲートウェイの [ゲートウェイ URL] のドメイン名部分です。

    gatewayPort

    8999

    クラウドゲートウェイエンドポイントのカスタムポート番号です。デフォルト値:8999

    これは、クラウドゲートウェイの [ゲートウェイ URL] のポート番号部分です。

    useSSL

    Boolean.TRUE

    TLS を使用して接続するかどうかを指定します。有効な値:

    • Boolean.TRUE (デフォルト):TLS を使用します。

    • Boolean.FALSE:TCP を使用します。

    CA_PATH

    dyy-gateway-tcu/src/main/resources/root-ca.crt

    TLS を使用して接続するには、このパラメーターをプロジェクト内の root-ca.crt ファイルのパスに設定します。

    vin

    device10000000001

    車両識別番号です。これは、作成したクラウドゲートウェイデバイスの [VIN] です。

  4. /dyy-gateway-tcu/src/main/java/com/dyy/tsp/gateway/tcu/handler/BusinessHandler.java ファイルは、車両のログイン、ハートビート、リアルタイムデータの報告、および車両のログアウトを処理します。このファイルを変更して、カスタム機能を追加します。

デバイスクライアントの実行

  1. IntelliJ IDEA で、[ファイル > プロジェクト構造] を選択します。

  2. [Project SDK] をバージョン 1.8 に設定し、[適用] をクリックします。

  3. [OK] をクリックします。

  4. TcuApplication.java ファイル内のメインプログラムを実行します。

    サーバー側の検証が成功すると、デバイスはオンラインになります。

実行ログの表示

デバイス側の実行ログ

デバイスクライアントは、アップストリームおよびダウンストリームのメッセージを出力します:

  • 車両ログインのリクエストメッセージ。メッセージの 3 バイト目と 4 バイト目の 01 fe は、車両ログインリクエストを示します。

             +-------------------------------------------------+
             |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
    +--------+-------------------------------------------------+----------------+
    |00000000| 23 23 01 fe 64 65 76 69 63 65 31 30 30 30 30 30 |##..device100000|
    |00000010| 30 30 30 30 31 01 00 1e 17 05 06 10 23 19 00 01 |00001.......#...|
    |00000020| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 |1234567890123456|
    |00000030| 37 38 39 30 00 00 ee                            |7890...         |
    +--------+-------------------------------------------------+----------------+
  • デバイスログインリクエストに対するサーバーからのレスポンスメッセージ。3 バイト目と 4 バイト目の 01 01 は、車両ログインが成功したことを示します。

             +-------------------------------------------------+
             |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
    +--------+-------------------------------------------------+----------------+
    |00000000| 23 23 01 01 64 65 76 69 63 65 31 30 30 30 30 30 |##..device100000|
    |00000010| 30 30 30 30 31 01 00 1e 17 05 06 10 23 19 00 01 |00001.......#...|
    |00000020| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 |1234567890123456|
    |00000030| 37 38 39 30 00 00 11                            |7890...         |
    +--------+-------------------------------------------------+----------------+
  • ハートビートを報告するためのメッセージ。3 バイト目と 4 バイト目の 07 01 は、メッセージがアップストリームのハートビートであることを示します。

             +-------------------------------------------------+
             |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
    +--------+-------------------------------------------------+----------------+
    |00000000| 23 23 07 01 64 65 76 69 63 65 31 30 30 30 30 30 |##..device100000|
    |00000010| 30 30 30 30 31 01 00 00 36                      |00001...6       |
    +--------+-------------------------------------------------+----------------+
  • ハートビートメッセージに対するサーバーからのレスポンスメッセージ。3 バイト目と 4 バイト目の 07 01 は、メッセージがダウンストリームのハートビートであることを示します。

             +-------------------------------------------------+
             |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
    +--------+-------------------------------------------------+----------------+
    |00000000| 23 23 07 01 64 65 76 69 63 65 31 30 30 30 30 30 |##..device100000|
    |00000010| 30 30 30 30 31 01 00 00 36                      |00001...6       |
    +--------+-------------------------------------------------+----------------+
  • リアルタイムデータを報告するためのメッセージ。3 バイト目と 4 バイト目の 02 fe は、リアルタイムデータ報告を示します。

             +-------------------------------------------------+
             |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
    +--------+-------------------------------------------------+----------------+
    |00000000| 23 23 02 fe 64 65 76 69 63 65 31 30 30 30 30 30 |##..device100000|
    |00000010| 30 30 30 30 31 01 00 14 17 05 06 10 23 23 08 01 |00001.......##..|
    |00000020| 01 00 05 00 06 00 04 00 07 01 00 0a df          |.............   |
    +--------+-------------------------------------------------+----------------+

クラウド側の実行ログ

IoT Platform コンソール[メンテナンス > デバイスログ]で、報告されたデバイスデータを確認できます。

クラウド側の実行ログの表示

[クラウド実行ログ] タブで、[DeviceName][TraceId]、または [コンテンツキーワード/MessageId] でフィルタリングします。ログエントリの [表示] をクリックすると、メッセージのトピック、タイムスタンプ、および JSON コンテンツが表示されます。