1

Android 環境でのMQTTプロトコルの使用に関して質問があります。Android デバイスにプッシュ通知を送信するために、Android アプリケーションを開発し、com.ibm.micro.client.mqttv3_7.5.0.0.jar MQTT クライアント ライブラリーを使用しています。私の質問はSSL接続についてです。デスクトップ アプリケーションでは、.keystore ファイルを適切な場所にコピーし、次のように参照します。

public Properties getSSLSettings() {
    final Properties properties = new Properties();
    properties.setProperty("com.ibm.ssl.keyStore",
        "C:/BKSKeystore/mqttclientkeystore.keystore");
    properties.setProperty("com.ibm.ssl.keyStoreType", "BKS");
    properties.setProperty("com.ibm.ssl.keyStorePassword", "passphrase");
    properties.setProperty("com.ibm.ssl.trustStore",
        "C:/BKSKeystore/mqttclienttrust.keystore");
    properties.setProperty("com.ibm.ssl.trustStoreType", "BKS");
    properties.setProperty("com.ibm.ssl.trustStorePassword", "passphrase ");

    return properties;
}

上記のコードは、SSL 設定を取得するために完全に機能します。このコードは Android でも実装しましたが、デバイス内に .keystore ファイルを保持することはまったく安全ではないことは明らかです。私の質問は、デバイスの内部または外部ストレージ内に .keystore ファイルを保存せずに SSL 接続を実装する他の方法はありますか?

4

1 に答える 1

1

それ以降のバージョンのAndroidでは、 KeyChainを使用してデバイスのキーストア にアクセスし、秘密鍵へのアクセスを提供できます。デバイスのトラストストアを使用するトラストストアの場合、AndroidがSSL接続にデフォルトで使用するトラストストアが正常に機能します。また、IBMには、モバイルデバイスでのライブラリの使用に関する情報を提供するメッセージングコミュニティがあります。

于 2013-01-08T14:14:23.937 に答える