我有一个关于在Android环境中使用MQTT协议的问题。我们正在开发一个 Android 应用程序并使用com.ibm.micro.client.mqttv3_7.5.0.0.jar MQTT 客户端库向 Android 设备发送推送通知。我的问题是关于 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 文件根本不安全。我的问题是,是否有任何其他替代方法可以实现 SSL 连接,而无需在设备的内部或外部存储中存储 .keystore 文件?